Учитывая эту функцию (написанную в псевдокоде), какова сложность времени?Пробуя это, я бы сказал, что временная сложность равна θ (n ^ 3) , поскольку нам нужно сначала пройти по дереву θ (n), а затем умножить вклад ANCESTOR, который равен θ (n) и вклад ADDTOQUEUE θ (n).Это правильно?
=========================================================================
ANCESTOR выполняет ряд операций, пропорциональных глубине узла
ADDTOHEAD выполняет постоянное количество операций
ADDTOQUEUE выполняет ряд операций, пропорциональных длине списка
`FUNCTION (T) / * T - дерево, заполненное целыми числами */
L.head = NULL /* L is a new empty linked list (of integers) */
RIC_FUNC(T.root,L)
return L
REC_FUNC(v,L)
if(v==NULL)return
if(ANCESTOR(v))
ADDTOQUEUE(L,v.info)
else
ADDHEAD(L,v.info)
REC_FUNC(v.left,L)
REC_FUNC(v.right,L)
``