1
1
mirror of https://github.com/ParkMoonJ/KaoYan.git synced 2026-06-18 01:36:31 +08:00

Update 6 树和二叉树.md

This commit is contained in:
ParkMoonJ
2021-04-15 08:54:12 +08:00
parent 421b9a86af
commit 82b157f0ba

View File

@@ -42,30 +42,152 @@
### 6.1① 已知一棵树边的集合为 $\{ <I, M>, <I, N>, <E, I>, <B, E>, <B, D>, <A, B>, <G, J>, <G, K>, <C, G>, <C, F>, <H, L>, <C, H>, <A, C> \}$,请画出这棵树,并回答下列问题:
```mermaid
graph TB
A --- B
A --- C
B --- D
B --- E
C --- F
C --- G
C --- H
E --- I
G --- J
G --- K
H --- L
I --- M
I --- N
```
#### 1哪个是根结点
A。
#### 2哪些是叶子结点
D、F、J、K、L、M、N。
#### 3哪个是结点 G 的双亲?
C。
#### 4哪些是结点 G 的祖先?
A、C。
#### 5哪些是结点 G 的孩子?
J、K。
#### 6哪些是结点 E 的子孙?
I、M、N。
#### 7哪些是结点 E 的兄弟?哪些是结点 F 的兄弟?
DG、H。
#### 8结点 B 和 N 的层次号分别是什么?
2 和 5。
#### 9树的深度是多少
5。
#### 10以结点 C 为根的子树的深度是多少?
3。
### 6.2① 一棵度为 2 的树与一棵二叉树有何区别?
- 度为 2 的树至少有 3 个节点,而二叉树可以为空。
- 度为 2 的有序树的孩子的左右次序是相对于另一孩子而言的,若某节点只有一个孩子,则这个孩子就无需区分其左右次序,而二叉树无论其孩子数是否为 2均需确定其左右次序即二叉树的结点次序不是相对于另一结点而言而是确定的。
### 6.3① 试分别画出具有 3 个结点的树和 3 个结点的二叉树的所有不同形态。
### 6.4③ 一棵深度为 $H$ 的满 $k$ 叉树有如下性质:第 $H$ 层上的结点都是叶子结点,其余各层上每个结点都有 $k$ 棵非空子树。如果按层次顺序从 1 开始对全部结点编号,问:
#### 1各层的结点数目是多少?(2编号为p的结点的父结点若存在)的编号是多少?(3编号为p的结点的第i个儿子结点(若存在)的编号是多少?4)编号为p的结点有右兄弟的条件是什么?其右兄弟的编号是多少6.5②已知一棵度为k的树中有M个度为1的结点M2个度为2的结点n个度为k的结点问该树中有多少个叶子结点?
#### 1各层的结点数目是多少
$3^{k - 1}$。
#### 2编号为 $p$ 的结点的父结点(若存在)的编号是多少?
$[p / k + 1 / 2]$。
#### 3编号为 $p$ 的结点的第 $i$ 个儿子结点(若存在)的编号是多少?
$p \times k - [k + 1 / 2] + i$。
#### 4编号为 $p$ 的结点有右兄弟的条件是什么?其右兄弟的编号是多少?
### 6.5② 已知一棵度为 $k$ 的树中有 $n_1$ 个度为 1 的结点,$n_2$ 个度为 2 的结点,……,$n_k$ 个度为 $k$ 的结点,问该树中有多少个叶子结点?
### 6.6③ 已知在一棵含有 $n$ 个结点的树中,只有度为 $k$ 的分支结点和度为 0 的叶子结点。试求该树含有的叶子结点的数目。
### 6.7③ 一棵含有 $n$ 个结点的 $k$ 叉树,可能达到的最大深度和最小深度各为多少?
可能达到的最大深度为 $n$,最小深度为 $1 + \log_{k}n$。
### 6.8① 证明:一棵满 $k$ 叉树上的叶子结点数 $n_0$ 和非叶子结点数 $n_1$ 之间满足以下关系:
$$
n_0 = (k - 1) n_1 + 1
$$
### 6.9② 试分别推导含 $n$ 个结点和含 $n_0$ 个叶子结点的完全三叉树的深度 $H$。
含 $n$ 个结点的完全三叉树的深度 $H = \log_3{n} + 1$;含 $n_0$ 个叶子结点的完全三叉树的深度 $H = n_0$
### 6.10① 对于那些所有非叶子结点均有非空左右子树的二叉树:
#### 1试问有 $n$ 个叶子结点的树中共有多少个结点?
#### 2试证明$\sum\limits_{i = 1}^{n}2^{-(l_i - 1)}=1$,其中 $n$ 为叶子结点的个数,$l_i$ 表示第 $i$ 个叶子结点所在的层次(设根结点所在层次为 1
### 6.11③ 在二叉树的顺序存储结构中,实际上隐含着双亲的信息,因此可和三叉链表对应。假设每个指针域占 4 个字节的存储,每个信息域占 $k$ 个字节的存储。试问:对于一棵有 $n$ 个结点的二叉树,且在顺序存储结构中最后一个结点的下标为 $m$,在什么条件下顺序存储结构比三叉链表更节省空间?
### 6.12② 对题 6.3 所得各种形态的二叉树,分别写出前序、中序和后序遍历的序列。
### 6.13② 假设 $n$ 和 $m$ 为二叉树中两结点用「1」、「0」或「φ」分别表示肯定、恰恰相反或者不一定填写下表
| --- | 前序遍历时n在m前? | 中序遍历时n在m前? | 后序遍历时n在m前? |
| :-------------: | :---------------: | :---------------: | :---------------: |
| $n$ 在 $m$ 左方 | 1 | 1 | 1 |
| $n$ 在 $m$ 右方 | 0 | 0 | 0 |
| $n$ 是 $m$ 祖先 | 1 | φ | φ |
| $n$ 是 $m$ 子孙 | 1 | φ | φ |
> 注:如果 ① 离 a 和 b 最近的共同祖先 p 存在,且 ② a 在 p 的左子树中b 在 p 的右子树中,则称 a 在 b 的左方(即 b 在 a 的右方)。
### 6.14② 找出所有满足下列条件的二叉树:
#### a它们在先序遍历和中序遍历时得到的结点访问序列相同
```mermaid
graph TB
1(1)
```
#### b它们在后序遍历和中序遍历时得到的结点访问序列相同
```mermaid
graph TB
1(1) --- 2(2)
2(2) -.- n(n)
```
#### c它们在先序遍历和后序遍历时得到的结点访问序列相同
```mermaid
graph TB
```
### 6.15② 请对右图所示二叉树进行后序线索化,为每个空指针建立相应的前驱或后继线索。