第5章 树与二叉树
Posted BlueMonds
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第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章 树与二叉树的主要内容,如果未能解决你的问题,请参考以下文章