树的先序遍历的栈实现
生活随笔
收集整理的這篇文章主要介紹了
树的先序遍历的栈实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
樹的先序遍歷的棧實現
?
先把根節點訪問了,右子樹入棧,去訪問左子樹。
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?
轉載于:https://www.cnblogs.com/Renyi-Fan/p/7468388.html
總結
以上是生活随笔為你收集整理的树的先序遍历的栈实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于mybatis的@Param注解和参
- 下一篇: 【BZOJ1899】[Zjoi2004]