Stack-based tree walk time complexity

What is the time complexity of implementing a binary tree traversal below?

void Tree::nonRecInOrder()
{
    // nonrecursive inOrder Traversal using Stack
    Stack< TreeNode* > s ; // declare and initialize stack
    TreeNode* currentNode = root ;

    while( true )
    {
        while( currentNode )
        {
            // move down leftChild fields
            s.add( currentNode ) ;
            currentNode = currentNode->leftChild ;
        }

         if( ! s.isEmpty() ) // stack is not empty
         {
             currentNode = *s.del( currentNode ) ; // delete from stack
             cout << currentNode->data ;
             currentNode = currentNode->rightChild ;
         }
         else
         {
            break ;
         }
    }    
}

Could you also explain how to calculate complexity?

+3
source share
1 answer

O - , , . , , , node . , , , - , , , - node . , , , , - , , - .

, , . : node . , node , - node, . ? , . - , node . , node node, node . , node ( ), , . , , no node d node , no node d + 1 , d + 1 , , . , , no node - node . , no node, node , node ( ), node. , , no node , , node , , node.

, . node , . , , enqueues dequeues, O (n), n - .

! . .: -)

+4

All Articles