public class BinaryTree {
public class TreeNode {
String data;
TreeNode left;
TreeNode right;
public TreeNode(String data, TreeNode left, TreeNode right) {
this.data = data;
this.left = left;
this.right = right;
}
public String getData(){
return data;
}
public void setData(String data){
}
public TreeNode getLeftNode(){
return left;
}
public void setLeftNode(TreeNode leftNode){
this.left=leftNode;
}
public TreeNode getRightNode(){
return right;
}
public void setRightNode(TreeNode rightNode){
this.right=rightNode;
}
}
public TreeNode init(){
TreeNode D=new TreeNode("D",null,null);
TreeNode H=new TreeNode("H",null,null);
TreeNode I=new TreeNode("I",null,null);
TreeNode J=new TreeNode("J",null,null);
TreeNode P=new TreeNode("P",null,null);
TreeNode G=new TreeNode("G",P,null);
TreeNode F=new TreeNode("F",null,J);
TreeNode E=new TreeNode("E",H,I);
TreeNode B=new TreeNode("B",D,E);
TreeNode C=new TreeNode("C",F,G);
TreeNode A=new TreeNode("A",B,C);
return A;
}
public void printNode(TreeNode node){
System.out.println(node.getData()+" ");
}
public void DLR(TreeNode node){//先序遍历
this.printNode(node);
if(node.getLeftNode()!=null){
this.DLR(node.getLeftNode());
}
if(node.getRightNode()!=null){
this.DLR(node.getRightNode());
}
}
public void LDR(TreeNode node){//中序遍历
if(node.getLeftNode()!=null){
this.LDR(node.getLeftNode());
}
this.printNode(node);
if(node.getRightNode()!=null){
this.LDR(node.getRightNode());
}
}
public void LRD(TreeNode node){//后序遍历
if(node.getLeftNode()!=null){
this.LRD(node.getLeftNode());
}
if(node.getRightNode()!=null){
this.LRD(node.getRightNode());
}
this.printNode(node);
}
public static void main(String[] args) {
BinaryTree binaryTree=new BinaryTree();
TreeNode node=binaryTree.init();
System.out.println("DLR:");
binaryTree.DLR(node);
System.out.println("LDR");
binaryTree.LDR(node);
System.out.println("LRD");
binaryTree.LRD(node);
}
}
二叉树——深度遍历
猜你喜欢
转载自blog.csdn.net/Answer0902/article/details/82467257
今日推荐
周排行