二叉树数据结构

子树是如果想要取那么就必须取全部,例如:
             
            

 如果取值就必须取全部,比如,去一个以3为头节点的3与7,那么这个不是子树,因为还有6雅瑶取出来,这样就是以3为头节点6,7为子节点,想要取一个子树就必须将他的头节点下边都取出来
 

子树遍历也分为三种
         1)先序:任何子树的处理顺序都是先从头部开始,在左子树,然后右子树
         2)中序:任何子树的处理顺序都是先左子树再头节点然后右子树
         3)后序:任何子树的处理顺序都是先左子树再右子树然后头节点
        例如上边图片先中后序分别为:1)1245367   2)4251637   3)4526731
具体代码如下:
  

//先序
public void pre(Node head){
     if(head==null){
           return;
}
     System.out.print(head.value);
     pre(head.left);
     pre(head.right);
}

//中序
public void pre(Node head){
     if(head==null){
           return;
}
     pre(head.left);
     System.out.print(head.value);
     pre(head.right);
}

//后序
public void pre(Node head){
     if(head==null){
           return;
}
     pre(head.left);
     pre(head.right);
     System.out.print(head.value);
}


发现其实先中后续遍历其实就是改变节点的打印顺序

 这个打印,如果是先序那么就打印第一次到达的如果是中序那么就打印第二次到达的如果是后序那么就打印后序,什么意思呢?就是比如上边那个二叉树:先去头节点是1然后让去左节点发现是2,然后就去左节点发现是4再去左节点是null返回到4然后再去右节点是null返回到4然后因为递归4要返回到2,然后再去右节点是5再去左节点是null返回到5再去右节点是null返回到5然后再返回到2然后再返回到1然后再去右节点是3再去左节点是6再去左节点是null返回到6再去右节点是null返回到6再返回到3再去右节点是7再去左节点是null返回到7再去右节点是null返回到7再返回到3再返回到1                      这就是图片下方的计算方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值