首页 > 代码库 > 第5章 树与二叉树
第5章 树与二叉树
1. 递归算法与非递归算法实现二叉树的遍历 ---- NOT BUG FREE
1 public class BiTree{ 2 private BiTreeNode root; 3 public BiTree(){ 4 this.root = null; 5 } 6 public BiTree(BiTreeNode root){ 7 this.root = root 8 } 9 //遍历法 10 public void preRootTraverse(BiTreeNode T){ 11 if(T != null){ 12 System.out.printIn(T.data); 13 preRootTraverse(T.lchild); 14 preRootTraverse(T.rchild); 15 } 16 } 17 //非遍历法**创建栈对象,根节点入栈;栈非空时,栈顶弹出并访问结点; 18 //对当前访问结点的非空左孩子结点相继依次访问,并将当前访问结点的非空右孩子结点压入栈内。 19 //循环执行,直到栈空。 20 public void preRootTraverse(){ 21 BiTreeNode T = root; 22 if(T != null){ 23 LinkStack s = new LinkStack(); 24 s.push(T); 25 while(!s.isEmpty){ 26 T = (BiTreeNode)s.pop(); 27 System.out.print(T.data); 28 /*while(T.lchild != null){ 29 T = T.lchild; 30 System.out.print(T.data); 31 if(T.rchild != null){ 32 s.push(T.rchild) 33 } 34 }*/ 35 while(T != null){ 36 if(T.lchild != null){ 37 System.out.print(T.lchild.data); 38 } 39 if(T.rchild != null){ 40 s.push(T.rchild); 41 } 42 T = T.lchild; 43 } 44 } 45 } 46 } 47 }
第5章 树与二叉树
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。