樹的先序遍歷的棧實現
阿新 • • 發佈:2017-09-03
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 {View Code10 cout << bt->data; //訪問根 11 stack[++top] = bt->rchild; //右子樹壓棧 12 bt = bt->lchild; //遍歷左子樹 13 } 14 if(top) //棧中所有元素出棧,遍歷完畢 15 { 16 bt = stack[top--]; 17 }18 } 19 }
樹的先序遍歷的棧實現