提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:数据结构不懂的小问题:
提示:自己复习看的内容
1.单链表有无头结点的区别?
引入头结点:把单链表第一个元素的操作不单独处理
有头结点:头指针指向头结点
无头结点:头指针指向的是链表的第一个元素
2.KMP算法解决字符串匹配问题
3.为什么在含有n个结点的二叉链表中有n+1个空链域?
因为n个节点有2n个指针
且n个节点中有n-1条边
除了头结点没有边,其余节点都有一个父节点,相当于都有1条边,共n-1条
剩下的空链域就是2n-(n-1)=n+1,即n+1个空指针。
4.【证明】二叉树结点和深度之间关系,具有n个结点的完全二叉树高度
i
i
i是结点的编号,
h
h
h是结点的高度
h
=
log
2
(
i
)
+
1
h=\log_2(i)+1
h=log2(i)+1
5.完全二叉树的高度
高为h的满二叉树共有
2
h
−
1
2^h-1
2h−1
高为h-1的满二叉树共有
(
2
h
−
1
)
−
1
\left(2^{\smash{h-1}}\right)-1
(2h−1)−1
(
2
h
−
1
)
−
1
<
n
≤
2
h
−
1
\left(2^{\smash{h-1}}\right)-1<n≤2^h-1
(2h−1)−1<n≤2h−1
相当于
(
2
h
−
1
)
<
n
+
1
≤
2
h
\left(2^{\smash{h-1}}\right)<n+1≤2^h
(2h−1)<n+1≤2h
h
−
1
<
log
2
(
n
+
1
)
≤
h
h-1<\log_2(n+1)≤h
h−1<log2(n+1)≤h
h
=
⌈
l
o
g
2
(
n
+
1
)
⌉
h=⌈log_2(n+1)⌉
h=⌈log2(n+1)⌉