码迷,mamicode.com
首页 > 其他好文 > 详细

非递归后序遍历二叉树(1)

时间:2015-01-20 08:56:05      阅读:243      评论:0      收藏:0      [点我收藏+]

标签:

 1 void postOrder3(BinTree *root)     //非递归后序遍历
 2 {
 3     stack<BinTree*> s;
 4     BinTree *cur;                      //当前结点 
 5     BinTree *pre=NULL;                 //前一次访问的结点 
 6     s.push(root);
 7     while(!s.empty())
 8     {
 9         cur=s.top();
10         if((cur->lchild==NULL&&cur->rchild==NULL)||
11            (pre!=NULL&&(pre==cur->lchild||pre==cur->rchild)))
12         {
13             cout<<cur->data<<" ";  //如果当前结点没有孩子结点或者孩子节点都已被访问过 
14               s.pop();
15             pre=cur; 
16         }
17         else
18         {
19             if(cur->rchild!=NULL)
20                 s.push(cur->rchild);
21             if(cur->lchild!=NULL)    
22                 s.push(cur->lchild);
23         }
24     }    
25 }

http://www.cnblogs.com/dolphin0520/archive/2011/08/25/2153720.html

非递归后序遍历二叉树(1)

标签:

原文地址:http://www.cnblogs.com/Fadinglemon/p/4235160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!