The data structure is to forget after learning, and to learn again after forgetting, and record the implementation of the simplest binary tree, and its pre-middle and post-order traversal. Offer code, welcome to enrich.
class MyTreeNode{
private char data;
private MyTreeNode leftNode;
private MyTreeNode rightNode;
public MyTreeNode(char data, MyTreeNode leftNode, MyTreeNode rightNode) {
this.data = data;
this.leftNode = leftNode;
this.rightNode = rightNode;
}
public char getData() {
return data;
}
public void setData(char data) {
this.data = data;
}
public MyTreeNode getLeftNode() {
return leftNode;
}
public void setLeftNode(MyTreeNode leftNode) {
this.leftNode = leftNode;
}
public MyTreeNode getRightNode() {
return rightNode;
}
public void setRightNode(MyTreeNode rightNode) {
this.rightNode = rightNode;
}
}
public class BinaryTree {
public void print(MyTreeNode node){
System.out.print(node.getData());
}
/**
*
* @Title: pre
* @Description: 前序遍历 根 左 右
* @param: @param root
* @return: void
* @throws
*/
public void pre(MyTreeNode root){
print(root);
if(root.getLeftNode()!=null){
pre(root.getLeftNode());
}
if(root.getRightNode()!=null){
pre(root.getRightNode());
}
}
/**
*
* @Title: in
* @Description: Middle Order Left Root Right
* @param: @param root
* @return: void
* @throws
*/
public void in(MyTreeNode root){ if(root.getLeftNode()!=null){ in(root .getLeftNode()); } print(root); if(root.getRightNode()!=null){ in(root.getRightNode()); } } /** * * @Title: post * @Description: middle order Left Right Root * @param: @param root * @return: void * @throws */ public void post(MyTreeNode root){
if(root.getLeftNode()!=null){
post(root.getLeftNode());
}
if(root.getRightNode()!=null){
post(root.getRightNode());
}
print(root);
}
public static void main(String[] args) {
MyTreeNode E = new MyTreeNode('E',null,null);
MyTreeNode F = new MyTreeNode('F',null,null);
MyTreeNode G = new MyTreeNode('G',null,null);
MyTreeNode H = new MyTreeNode('H',null,null);
MyTreeNode B = new MyTreeNode('B',E,F);
MyTreeNode C = new MyTreeNode('C',G,H);
MyTreeNode A = new MyTreeNode('A',B,C);
BinaryTree tree=new BinaryTree();
System.out.println("前序");
tree.pre(A);
System.out.println();
System.out.println("中序");
tree.in(A);
System.out.println();
System.out.println("后序");
tree.post(A);
}