初识二叉树及实现二叉树

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一截木化石

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值