树、二叉树、AVL树,B树基础学习

树、二叉树、AVL树,B树基础学习

一、树的基本概念
树是一种数据结构,它是由n(n>1)个有限节点组成的一个具有层次关系的集合。
树的基本概念
1、双亲:若有一个结点有子树,那么该结点就称为子树根的“双亲”。
2、孩子结点:子树的根称为改子树双亲结点的“孩子结点”。
3、兄弟结点:有相同的双亲的结点称为“兄弟结点”。
4、结点的度:结点拥有的子树的数目。
节点的度
5、叶子结点:度为0的结点。
6、分支结点:度不为0的结点
6、树的度:数中结点的最大的度
7、层次:根节点层次为1,其余节点的层次等于该节点的双亲节点的层次+1.
节点层次
8、树的高度:数中结点的最大层次
9:森林:0个或多个不想交的树的组成。对森林加上一个根,森林即成为树;删去根,树即成为森林。

二、二叉树的基本概念
二叉树
定义:二叉树是每个结点最多有两个子树的树的结构。通常子树被称作“左子树”和“右子树”。

二叉树特点

由二叉树定义以及图示分析得出二叉树有以下特点:

  • 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。
  • 左子树和右子树是有顺序的,次序不能任意颠倒。
  • 即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。

二叉树性质

  • 在二叉树的第i层上最多有2i-1 个节点 。(i>=1)
  • 二叉树中如果深度为k,那么最多有2k-1个节点。(k>=1)
  • n0=n2+1 n0表示度数为0的节点数,n2表示度数为2的节点数。
  • 在完全二叉树中,具有n个节点的完全二叉树的最小深度为[log2n]+1,其中[log2n]是向下取整。
  • 若对含 n 个结点的完全二叉树从上到下且从左至右进行 1 至 n 的编号,则对完全二叉树中任意一个编号为 i 的结点有如下特性:
(1) 若 i=1,则该结点是二叉树的根,无双亲, 否则,编号为 [i/2] 的结点为其双亲结点;
(2) 若 2i>n,则该结点无左孩子, 否则,编号为 2i 的结点为其左孩子结点;
(3) 若 2i+1>n,则该结点无右孩子结点, 否则,编号为2i+1 的结点为其右孩子结点。

斜树

斜树:所有的结点都只有左子树的二叉树叫左斜树。所有结点都是只有右子树的二叉树叫右斜树。这两者统称为斜树。
左斜树
在这里插入图片描述

满二叉树

满二叉树:在一棵二叉树中。如果所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上,这样的二叉树称为满二叉树。
满二叉树的特点有:
1)叶子只能出现在最下一层。出现在其它层就不可能达成平衡。
2)非叶子结点的度一定是2。
3)在同样深度的二叉树中,满二叉树的结点个数最多,叶子数最多。
满二叉树

完全二叉树

完全二叉树:对一颗具有n个结点的二叉树按层编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中位置完全相同,则这棵二叉树称为完全二叉树。
完全二叉树
特点:
1)叶子结点只能出现在最下层和次下层。
2)最下层的叶子结点集中在树的左部。
3)倒数第二层若存在叶子结点,一定在右部连续位置。
4)如果结点度为1,则该结点只有左孩子,即没有右子树。
5)同样结点数目的二叉树,完全二叉树深度最小。
注:满二叉树一定是完全二叉树,但反过来不一定成立。

二叉树的遍历

1、先序遍历:
对于每一个结点都有:
(1)先访问根节点。
(2)再访问左子树。
(3)后访问右子树。
2、中序遍历
对于每一个结点都有:
(1)先访问左子树。
(2)再访问根节点。
(3)后访问右子树。
3、后序遍历
对于每一个结点都有
(1)先访问左子树。
(2)再访问右子树。
(3)后访问根结点。

二叉搜索树

定义
二叉搜索树又称二叉查找树,亦称为二叉排序树。设x为二叉查找树中的一个节点,x节点包含关键字key,节点x的key值记为key[x]。如果y是x的左子树中的一个节点,则key[y] <= key[x];如果y是x的右子树的一个节点,则key[y] >= key[x]。

性质
(1)若左子树不空,则左子树上所有节点的值均小于它的根节点的值;
(2)若右子树不空,则右子树上所有节点的值均大于它的根节点的值;
(3)左、右子树也分别为二叉搜索树;
如图为一颗二叉搜索树:
二叉搜索树
节点结构
二叉树的节点结构通常包含三部分,其中有:左孩子的指针

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值