数据结构就是学了就忘,忘了再学,顺手记录一下最简单的二叉树的实现,及其前中后序遍历。献上代码,欢迎进行丰富。
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: 中序遍历 左 根 右
* @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: 中序遍历 左 右 根
* @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);
}