A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唐秀启 黑马帝   /  2011-12-11 10:15  /  2754 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 benbenqi 于 2011-12-11 10:17 编辑

本来想问问来。。刚刚找到了数据结构课本看了看以前的总结,感觉挺有用的,与大家分享下吧


二叉树的遍历
先序遍历(先根遍历)
  (1)访问根结点 (2)先序遍历左子树(3)先序遍历右子树
中序遍历
  (1)中序遍历左子树(2)访问跟结点(3)中序遍历右子树
后序遍历(后根遍历)
  (1)后序遍历左子树(2)后序遍历右子树(3)访问根结点。
非递归后序遍历算法
  1. public void Postorder_(BinTreeNode t) {   
  2.      Stack<BinTreeNode> stack = new Stack<BinTreeNode>();   
  3.      BinTreeNode pre = t;   
  4.      if (t != null) {   
  5.          while (true) {   
  6.              if (t.right != pre && t.left != pre && t.left != null) {   
  7.                  stack.push(t);   
  8.                  pre = t;   
  9.                  t = t.left;   
  10.              } else if (t.right != pre && t.right != null) {   
  11.                  stack.push(t);   
  12.                  pre = t;   
  13.                  t = t.right;   
  14.              } else {   
  15.                  System.out.println(t.data);   
  16.                  pre = t;   
  17.                  if (!stack.isEmpty()) {   
  18.                      t = stack.pop();   
  19.                  } else {   
  20.                      break;   
  21.                  }   
  22.              }   
  23.          }   
  24.      }   
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
王德云 + 1 神马都是浮云

查看全部评分

2 个回复

正序浏览
熊明春 发表于 2011-12-11 10:29
,谢谢楼主分享,以下个人愚见:
TreeSet采用后序遍历——>是值插入存储的时候;但输出的时 ...

不是啊  存储是按二叉树存储,你都说遍历了,而遍历的意思就是访问。

我还是认为TreeSet采用的是后序遍历。
回复 使用道具 举报
本帖最后由 熊明春 于 2011-12-11 10:30 编辑

{:soso_e132:},谢谢楼主分享,以下个人愚见:
TreeSet采用后序遍历——>是值插入存储的时候;但输出的时候要看具体自定义的比较器的方法了,默认输出应该是中序遍历,
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马