初识二叉树及实现二叉树

数据结构就是学了就忘,忘了再学,顺手记录一下最简单的二叉树的实现,及其前中后序遍历。献上代码,欢迎进行丰富。

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);
    }

猜你喜欢

转载自blog.csdn.net/yijiemuhuashi/article/details/121411395