基于前面一篇的基本二叉树的创建实现的二叉树的遍历
节点类
public class TreeNode {
//在这个类中 创建 相应的类的节点
//节点的权
int value;
//声明相对应的左节点以及右节点
TreeNode lNode;
TreeNode rNode;
public TreeNode(int value ){
this.value=value;
}
public void setlNdoe(TreeNode lNdoe){
this.lNode=lNdoe;
}
//设置右节点的指向
public void setrNdoe(TreeNode rNdoe){
this.rNode=rNdoe;
}
public void frontShow() {
System.out.println(value);
if(lNode!=null){
lNode.frontShow();
}
if (rNode!=null){
rNode.frontShow();
}
}
public void centershow() {
if(lNode!=null){
lNode.centershow();
}
System.out.println(value);
if (rNode!=null){
rNode.centershow();
}
}
public void lastShow() {
if (lNode!=null){
lNode.lastShow();
}
if(rNode!=null){
rNode.lastShow();
}
System.out.println(value);
}
}
树类
public class Tree {
TreeNode root;
//设置跟节点
public void setRoot(TreeNode root){
this.root=root;
}
//获取根节点
public TreeNode getRoot(){
return root;
}
public void frontShow() {
root.frontShow();
}
public void centerShow() {
root.centershow();
}
public void lastShow() {
root.lastShow();
}
}
测试类
public class TestTree {
public static void main(String[] args) {
//创建了一棵树
Tree tree =new Tree();
//创建根节点
TreeNode root=new TreeNode(1); //权值为1
tree.setRoot(root);
//创建一个左节点
TreeNode rootLeft=new TreeNode(2); //这是第二层的左节点
//将节点放入到 根节点的左侧
root.setlNdoe(rootLeft);
//创建一个右节点
TreeNode rootRight=new TreeNode(3);
//将有右节点放入到根节点的右侧
root.setrNdoe(rootRight);
//第二层的左节点的左节点
TreeNode l1=new TreeNode(4);
rootLeft.setlNdoe(l1);
//第二层的左节点的右节点
TreeNode l2=new TreeNode(5);
rootLeft.setrNdoe(l2);
//实现相应的节点的添加
rootRight.setlNdoe(new TreeNode(6));
rootRight.setrNdoe(new TreeNode(7));
//实现前序遍历
tree.frontShow();
System.out.println("以上是前序遍历");
tree.centerShow();
System.out.println("以上是中序遍历");
tree.lastShow();
System.out.println("以上是后序遍历");
}
}



