數據結構后序遍歷二叉樹非遞歸算法


代碼如下:

 1 void postorder(BiTree T)  2 {  3     InitStack(S);          //初始化棧
 4     p=T;  5     r=null;      //輔助指針,指向最近訪問過的結點
 6     while(p||!IsEmpty(s))  7  {  8         if(p)  9  { 10  push(S,p); 11             p=p->lchid;        //走到最左邊
12  } 13         else         //向右查找
14  { 15             GetTop(S,p);     //獲取棧頂元素,不出棧
16             if(p->rchild!=null&&p->rchild!=r)         //如果右孩子非空並且沒有訪問過
17                 p=p->rchild;     //轉向右孩子
18             else         //否則彈出節點並訪問
19  { 20  pop(S,p); 21                 visit(p->data); 22                 r=p;         //記錄最近訪問過的結點
23                 p=null;      //結點訪問完,重置p指針
24  } 25  } 26  } 27 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM