|京ICP备14027590号-282

大连海事大学计算机考研——证明题部分(续)

因证明题部分较为简单,大多为记忆内容,因此同种证明思路不过多赘述。

1. n(n>1)个权值构造的Huffman树中不存在度为1的节点。

(反证法,1)

哈夫曼树(最优树):带权路径最短的树。

假设存在一个度为1的节点,即该树有一棵子树。

设该节点为A,其子树为B。可将AB合并成一个节点,

则B以下叶子节点的带权路径减少,树的带权路径长度减少,

显然合并后的树,带权路径长度小于原树,

与原树是Huffman树的条件相悖,故假设不成立。

2. 若(u,v)是一条最小权值的边,其中u∈U,v∈V-U,则必存在一棵包含(u,v)的最小生成树。

(反证法, 2)

令N = (V,{E}),v∈V

设:连通网网N中的任何一棵最小生成树都不包含(u,v),T是N中的一棵最小生成树。

由生成树定义可知:

①当把边(u,v)加入T中,T中必存在一条包含(u,v)的回路。

②T中必存在另一条边(u1,v1), u1∈U,v1∈V。

则u和u1之间,v和v1之间均有路径相通。

删去边(u1,v1),即可消除上述回路,得到新生成树【T1】.

因为(u,v)的代价不高于(u1,v1),所以【T1】的代价不高于T,

所以【T1】是包含(u,v)的一棵最小生成树,与假设矛盾。

因此,问题得证。

3. n个节点,k条边的非联通无向图是一个森林(n>k),证:森林有n-k棵树。

设:森林有x棵树,每棵树的节点数为x1,x2,… xn;

除根节点外,每个节点都有唯一的一条分支(边)与之对应,即:总边数 = 总节点数 -1;

(注:几道证明题都用到这句话,也是围着这句话展开的证明)

每棵树的边数为(x1-1),(x2-1),… (xn-1);

则 n = x1 + x2 + …+xn;

k = (x1-1) + (x2-1)+ … + (xn-1)=(x1 + x2 + … + xn) – x = n – x

所以: x = n – k

4. 高度为h的二叉树节点数不超过2^h-1。

(归纳法, 1)

令n表示二叉树的节点总数

①高度h = 1; n = 1 = 2^1 – 1;

②h≤k; 设 n ≤ 2^k – 1;

③h = k + 1;

定义可知:第i层最多有2^( i-1 )个节点。

n + 2^k【n表示k层节点总数,2^k表示k+1层最多节点数,相加为k+1层最多节点数】

≤2^k -1 + 2^k = 2^( k+1 ) -1;

所以,k+1层总节点数≤2^( k+1 ) -1;

综上,由归纳法得证,高度为h的二叉树节点数不超过2^h-1.

5. 高度为h的2-3B树中叶子节点数目在2^(h-1) 到 3^(h-1)之间。

(归纳法,2)

令N表示2-3B树的叶子节点总数

①h = 1,N = 1; 2^(1-1) ≤ N ≤ 3^(1-1) ,不等式成立。

②h ≤ k, 设 2^(k-1) ≤ N ≤ 3^(k-1);

③h = k+1,

根据定义,2-3

B树的子树有2~3棵,分别记为:r1,r2,r3。

对于每棵子树,高度都小于等于k,

由②可知,每棵树的叶子节点数目:2^(k-1) ≤ N ≤ 3^(k-1);

各子树的叶子节点都是原树的叶子节点,分两种情况:

⑴最少有2棵子树,每棵子树叶子节点最少为2^(k-1),所以N ≥ 2*2^(k-1) = 2^k

⑵最多有3棵子树,每棵子树叶子节点最多为3^(k-1),所以N ≤ 3*3^(k-1) = 3^k

所以, 2^k ≤ N ≤ 3^k;

综上,由归纳法得:高度为h的2-3B树中叶子节点数目在2^(h-1) 到 3^(h-1)之间。

结语:大体分为这5种,后续有值得补充的再补充上。

发表评论

|京ICP备18012533号-223