数据结构-树与二叉树篇(更新中)


20.12.9
寻寻寻寻更新
树与二叉树、树与森林的PTA例题,
树与森林编程题未处理。
差huffman树。


1、树

1、树是n ( n > = 0 ) n(n>=0)n(n>=0)结点的有限集,有且仅有一个特定的称为根的结点,当n>1时,其余结点可分为m个互不相交的有限集,每个集合都是一棵树,是根的子树。

2、结点的度:子树的个数;
树的度:树的节点中最大度
叶节点(终端结点):度为0的节点;而分支结点是度不为0的结点。
树的深度:树所有结点中最大层次(根节点的层次为1)
路径长度:结点个数-1,或者说是分支条数
兄弟结点是与当前结点父结点相同的结点
森林是m ( m > = 0 ) m(m>=0)m(m>=0)棵互不相交的树的集合

2、二叉树

1、二叉树是另一种树形结构,每个结点至多只有两棵子树,且有左右之分,需要注意的是,从树的概念衍生来的二叉树是可以为空树的。

2、在二叉树的第i层上至多有2i-1个结点(i>=1)

3、深度为k的二叉树至多有2k-1个结点(k>=1),由此,深度为k且有2k −1个结点的二叉树是满二叉树;而完全二叉树是其n个结点与满二叉树的n个结点编号一致。
在这里插入图片描述

4、对任何一棵二叉树T,若叶结点数为n0,度为2的结点的个数n2 ,则n0 = n 2 + 1

5、对于完全二叉树T,具有n个结点,其深度为log 2 n(向下取整) + 1

6、对于有n个结点的完全二叉树,i为结点编号,如果i = 1则i是二叉树的根,若i > 1 则其双亲是i / 2 (向下取整);另外,如果2 i > n则i 无左孩子,2 i + 1 > n 则i无右孩子0;
即完全二叉树的左孩子编号为双亲的2倍,有孩子为2倍加一。

3、存储结构

1、顺序存储,以数组下标表示结点编号,明显可以看出,如果树不为完全二叉树,则浪费了很多存储空间在这里插入图片描述

2、链式存储 分为数据域和左右指针域,链的头指针指向根节点。在这里插入图片描述
还有一种三叉链表,多加了一个指向双亲结点的指针。在这里插入图片描述
注:空指针域=n0+n1+n2+1

4、二叉树基本操作

孩子兄弟表示法

6、哈夫曼树

树中一定没有度为一的节点
树中两个权值最小的节点一定是兄各结点
树中任一非叶结点的权值一定不小于下一层任一结点的权值
一棵哈夫曼树的带权路径长度等于其中所有分支结点的权值之和
任何一个结点的度都是0或者1.

5、树的PTA例题

1、已知一棵二叉树的先序遍历结果是ABC, 则CAB不可能是中序遍历结果。

不可能出现,c在a前面,b却在a后面的情况。

2、如果一棵非空k(k≥2)叉树T中每个非叶子结点都有k个孩子,则称T为正则k叉树。若T的高度为h(单结点的树h=1),则T的结点数最多为:(k​h−1)/(k−1)

等比数列求和而已。

3、 在最大堆(大顶堆)中,从根到任意其它结点的路径上的键值一定是按非递增有序排列的。

4、具有1102个结点的完全二叉树一定有__个叶子结点。551

完全二叉树,偶数节点一半是叶子结点,奇数结点,加一再除以二是其叶子结点。

5、若一棵二叉树的前序遍历序列是{ 4, 2, 1, 3, 6, 5, 7 },中序遍历序列是{ 1, 2, 3, 4, 5, 6, 7 }

有中序遍历就可以推导在这里插入图片描述

6、按照二叉树的定义,具有3个结点的二叉树有几种?5。

此处只说形状,不分数值大小。

7、
已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则该完全二叉树的结点个数最多是:111

有坑,注意实际上最多是7层,第六层8个叶节点,第七层48个叶结点。

8、
在一个用数组表示的完全二叉树中,如果根结点下标为1,那么下标为17和19这两个结点的最近公共祖先结点在哪里(数组下标)? (注:两个结点的“公共祖先结点”是指同时都是这两个结点祖先的结点)

答案4,同第四题逻辑。

9、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值