Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1523138
  • 博文数量: 399
  • 博客积分: 8508
  • 博客等级: 中将
  • 技术积分: 5302
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-14 09:28
个人简介

能力强的人善于解决问题,有智慧的人善于绕过问题。 区别很微妙,小心谨慎做后者。

文章分类

全部博文(399)

文章存档

2018年(3)

2017年(1)

2016年(1)

2015年(69)

2013年(14)

2012年(17)

2011年(12)

2010年(189)

2009年(93)

分类: LINUX

2010-08-25 18:42:28

void postOrder(TreeNode *root)
  {
   stack*> st;
   TreeNode *p = root;
   TreeNode *pre = NULL;//pre表示最近一次访问的结点
   while(p || st.size()!=0)
   {
   //沿着左孩子方向走到最左下 。
   while(p)
   {
   st.push(p);
   p = p->left;
   }
   //get the top element of the stack
   p = st.top();
   //如果p没有右孩子或者其右孩子刚刚被访问过
   if(p->right == NULL || p->right == pre)
   {
   //visit this element and then pop it
   cout << "visit: " << p->data << endl;
   st.pop();
   pre = p;
   p = NULL;
  
   }
   else
   {
   p = p->right;
  
   }
   }//end of while(p || st.size()!=0)
阅读(725) | 评论(0) | 转发(0) |
0

上一篇:金刚坐飞机问题

下一篇:外排序学习笔记

给主人留下些什么吧!~~