1. 程式人生 > >樹的先序遍歷的棧實現

樹的先序遍歷的棧實現

class 遍歷 clas top 出棧 opened 訪問 com 二叉樹

樹的先序遍歷的棧實現

技術分享

先把根節點訪問了,右子樹入棧,去訪問左子樹。

技術分享
 1   void preorder(tree bt)         //先序遍歷bt所指的二叉樹
 2   {
 3       tree stack[n];                     //
 4       int top = 0;                       //棧頂指針
 5       tree P;
 6       while(bt || top)
 7       {
 8           while(bt)                        //非葉結點
 9           {
10    cout << bt->data; //訪問根 11    stack[++top] = bt->rchild; //右子樹壓棧 12    bt = bt->lchild; //遍歷左子樹 13    } 14    if(top) //棧中所有元素出棧,遍歷完畢 15    { 16    bt = stack[top--]; 17   }
18    } 19   }
View Code

樹的先序遍歷的棧實現