高大力
CCF推出CSP認(rèn)證(Certified Softwmare Professional, 軟件能力認(rèn)證),以評(píng)價(jià)計(jì)算機(jī)專業(yè)人士或準(zhǔn)專業(yè)人士計(jì)算機(jī)科學(xué)的基礎(chǔ)能力——算法和編程能力。CSP已成為一些企業(yè)及許多大學(xué)評(píng)價(jià)計(jì)算機(jī)專業(yè)大學(xué)生專業(yè)能力的重要工具。
這是CSP2021初賽的一道選擇題,涉及知識(shí)點(diǎn)為二叉樹形態(tài)。
如果一棵二叉樹只有根結(jié)點(diǎn),那么這棵二叉樹高度為1。請(qǐng)問高度為5的完全二叉樹有()種不同的形態(tài)?
A. 16
B. 15
C. 17
D. 32
二叉樹(Binary tree)是樹形結(jié)構(gòu)的一個(gè)重要類型。二叉樹特點(diǎn)是每個(gè)節(jié)點(diǎn)最多只能有兩棵子樹,通常子樹被稱作“左子樹”(left subtree)和“右子樹”(right subtree),且左右次序不能顛倒。二叉樹的第i層至多有2^(i-1)個(gè)結(jié)點(diǎn);深度為k的二叉樹至多有2^k-1個(gè)結(jié)點(diǎn);深度為k,有n個(gè)節(jié)點(diǎn)的二叉樹,當(dāng)且僅當(dāng)其每一個(gè)節(jié)點(diǎn)都與深度為k的滿二叉樹中,序號(hào)為1至n的節(jié)點(diǎn)對(duì)應(yīng)時(shí),稱之為完全二叉樹。
滿二叉樹的特點(diǎn)在于“滿”,即每層的結(jié)點(diǎn)數(shù)都是最大結(jié)點(diǎn)數(shù)。
完全二叉樹是相對(duì)于滿二叉樹來說的。二叉樹是有序樹,對(duì)一棵滿二叉樹和一棵完全二叉樹按“自上向下,自左向右”的順序進(jìn)行編號(hào)。完全二叉樹中的所有結(jié)點(diǎn)的編號(hào)必須和滿二叉樹的相同編號(hào)的結(jié)點(diǎn)在位置上完全相同。換句話說,完全二叉樹的結(jié)點(diǎn)按“自上向下,自左向右”的順序不能中斷。T3 的結(jié)點(diǎn)C 沒有左葉子,顯然按那個(gè)順序是中斷的。
回到本題,高度為5的完全二叉樹,在第5層至多有2^(5-1)=16個(gè)節(jié)點(diǎn),從1個(gè)節(jié)點(diǎn)到16個(gè)節(jié)點(diǎn),可以至多有16種形態(tài)。