数据结构 二叉树

1.树的术语

(1)结点的度:一个结点拥有子树(或后继结点)的个数称为度.度是结点分支树的表示.
(2)树的度:树中所有结点的度的最大值称为树的度.
(3)子结点:一个结点的子树的根节点(或直接后继结点)称为该结点的子结点.
(4)父结点:一棵子树根结点的前继结点称为父结点.除根结点以外的任何结点有且仅有一个父结点.父结点也称双亲结点.
(5)兄弟结点:属于同一个父结点的若干子结点之间互称兄弟结点.
(6)结点的层:树的任何一个结点都处于某一层.因此,树中结点构成一个层次结构.
(7)树的深度:树的最大层次数称为树的深度,也称树的高度.
(8)有序树和无序数:若把结点的子结点都看成从左向右是有序的,则称为有序树;否则称为无序树.有序树的兄弟结点不可交换.
(9)森林:树的集合称为森林.树和森林之间有着密切的关系.删除一个树的根结点,其所有原来的子树都是树,构成森林.用一个结点连接到森林的所有树的根结点就构成树.这个结点称为新的根结点.森林的所有树是该结点的子树.

2.二叉树

核心:树中每个节点最多只能有两个子节点。当每个子节点都有两个孩子的时候,叫做满二叉树。

插入结点核心:
1)如果不存在节点,则直接插入;
2)从根开始查找一个相应的节点,即新节点的父节点,当父节点被找到后,根据新节点的值来确定新节点是连接到左子节点还是右子节点。

查找节点核心:
1)从根开始查找,
2)如果查找节点值比父节点小,则查找其左子树,
3)否则查找右子树,直到找到为止,
4)如果不存在节点,返回Null

修改节点核心:
1)查找节点
2)找到该节点后,修改值(一般不建议修改keyData)

遍历二叉树核心:

三种方法::先序,中序,后序
序是针对父节点(根节点)的位置

前序:根结点第一个访问,然后访问左、右孩子;ABC
后序:根结点最后访问,开始先访问左、右孩子;BCA
中序:根结点第二个访问,最先访问左孩子,最后访问右孩子;BAC
以下图为例子:
这里写图片描述
前序序列:0134256
后序序列:3415620
中序序列:3140526

先序遍历二叉树:
1)访问节点;
2)先序遍历节点的左子树;
3)先序遍历节点的右子树。

中序遍历二叉树:
1)中序遍历节点的左子树;
2)访问节点;
3)中序遍历节点的右子树。

后序遍历二叉树:
1)后序遍历节点的左子树;
2)后序遍历节点的右子树;
3)访问节点。

3.代码实现二叉树

public class Node {
   
    
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值