查看匯總:2014年計(jì)算機(jī)二級(jí)公共基礎(chǔ)知識(shí)總結(jié)匯總
1.4樹(shù)與二叉樹(shù)
考點(diǎn)7 樹(shù)與二叉樹(shù)及其基本性質(zhì)
考試鏈接:
考點(diǎn)7在筆試考試中,是一個(gè)必考的內(nèi)容,在筆試考試中出現(xiàn)的幾率為100%,主要是以選擇的形式出現(xiàn),有時(shí)也有出現(xiàn)在填空題中,分值為2分,此考點(diǎn)為重點(diǎn)掌握內(nèi)容。重點(diǎn)識(shí)記樹(shù)及二叉樹(shù)的性質(zhì)。
誤區(qū)警示:
滿二叉樹(shù)也是完全二叉樹(shù),而完全二叉樹(shù)一般不是滿二叉樹(shù)。應(yīng)該注意二者的區(qū)別。
1、樹(shù)的基本概念
樹(shù)(tree)是一種簡(jiǎn)單的非線性結(jié)構(gòu)。在樹(shù)結(jié)構(gòu)中,每一個(gè)結(jié)點(diǎn)只有一個(gè)前件,稱(chēng)為父結(jié)點(diǎn),沒(méi)有前件的結(jié)點(diǎn)只有一個(gè),稱(chēng)為樹(shù)的根結(jié)點(diǎn)。每一個(gè)結(jié)點(diǎn)可以有多個(gè)后件,它們稱(chēng)為該結(jié)點(diǎn)的子結(jié)點(diǎn)。沒(méi)有后件的結(jié)點(diǎn)稱(chēng)為葉子結(jié)點(diǎn)。
在樹(shù)結(jié)構(gòu)中,一個(gè)結(jié)點(diǎn)所擁有的后件個(gè)數(shù)稱(chēng)為該結(jié)點(diǎn)的度。葉子結(jié)點(diǎn)的度為0。在樹(shù)中,所有結(jié)點(diǎn)中的最大的度稱(chēng)為樹(shù)的度。
2、二叉樹(shù)及其基本性質(zhì)
(1)二叉樹(shù)的定義
二叉樹(shù)是一種很有用的非線性結(jié)構(gòu),具有以下兩個(gè)特點(diǎn):
①非空二叉樹(shù)只有一個(gè)根結(jié)點(diǎn);
�、诿恳粋€(gè)結(jié)點(diǎn)最多有兩棵子樹(shù),且分別稱(chēng)為該結(jié)點(diǎn)的左子樹(shù)和右子樹(shù)。
由以上特點(diǎn)可以看出,在二叉樹(shù)中,每一個(gè)結(jié)點(diǎn)的度最大為2,即所有子樹(shù)(左子樹(shù)或右子樹(shù))也均為二叉樹(shù),而樹(shù)結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)的度可以是任意的。另外,二叉樹(shù)中的每個(gè)結(jié)點(diǎn)的子樹(shù)被明顯地分為左子樹(shù)和右子樹(shù)。在二叉樹(shù)中,一個(gè)結(jié)點(diǎn)可以只有左子樹(shù)而沒(méi)有右子樹(shù),也可以只有右子樹(shù)而沒(méi)有左子樹(shù)。當(dāng)一個(gè)結(jié)點(diǎn)既沒(méi)有左子樹(shù)也沒(méi)有右子樹(shù)時(shí),該結(jié)點(diǎn)即為葉子結(jié)點(diǎn)。
(2)二叉樹(shù)的基本性質(zhì)
二叉樹(shù)具有以下幾個(gè)性質(zhì):
性質(zhì)1:在二叉樹(shù)的第k層上,最多有2k-1(k≥1)個(gè)結(jié)點(diǎn);
性質(zhì)2:深度為m的二叉樹(shù)最多有2m-1個(gè)結(jié)點(diǎn);
性質(zhì)3:在任意一棵二叉樹(shù)中,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)。
性質(zhì)4:具有n個(gè)結(jié)點(diǎn)的二叉樹(shù),其深度至少為[log2n]+1,其中[log2n]表示取log2n的整數(shù)部分。
小技巧:在二叉樹(shù)的遍歷中,無(wú)論是前序遍歷,中序遍歷還是后序遍歷,二叉樹(shù)的葉子結(jié)點(diǎn)的先后順序都是不變的。
3、滿二叉樹(shù)與完全二叉樹(shù)
滿二叉樹(shù)是指這樣的一種二叉樹(shù):除最后一層外,每一層上的所有結(jié)點(diǎn)都有兩個(gè)子結(jié)點(diǎn)。在滿二叉樹(shù)中,每一層上的結(jié)點(diǎn)數(shù)都達(dá)到最大值,即在滿二叉樹(shù)的第k層上有2k-1個(gè)結(jié)點(diǎn),且深度為m的滿二叉樹(shù)有2m-1個(gè)結(jié)點(diǎn)。
完全二叉樹(shù)是指這樣的二叉樹(shù):除最后一層外,每一層上的結(jié)點(diǎn)數(shù)均達(dá)到最大值;在最后一層上只缺少右邊的若干結(jié)點(diǎn)。
對(duì)于完全二叉樹(shù)來(lái)說(shuō),葉子結(jié)點(diǎn)只可能在層次最大的兩層上出現(xiàn):對(duì)于任何一個(gè)結(jié)點(diǎn),若其右分支下的子孫結(jié)點(diǎn)的最大層次為p,則其左分支下的子孫結(jié)點(diǎn)的最大層次或?yàn)閜,或?yàn)閜+1。
完全二叉樹(shù)具有以下兩個(gè)性質(zhì):
性質(zhì)5:具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為[log2n]+1。
性質(zhì)6:設(shè)完全二叉樹(shù)共有n個(gè)結(jié)點(diǎn)。如果從根結(jié)點(diǎn)開(kāi)始,按層次(每一層從左到右)用自然數(shù)1,2,……,n給結(jié)點(diǎn)進(jìn)行編號(hào),則對(duì)于編號(hào)為k(k=1,2,……,n)的結(jié)點(diǎn)有以下結(jié)論:
①若k=1,則該結(jié)點(diǎn)為根結(jié)點(diǎn),它沒(méi)有父結(jié)點(diǎn);若k>1,則該結(jié)點(diǎn)的父結(jié)點(diǎn)編號(hào)為INT(k/2)。
②若2k≤n,則編號(hào)為k的結(jié)點(diǎn)的左子結(jié)點(diǎn)編號(hào)為2k;否則該結(jié)點(diǎn)無(wú)左子結(jié)點(diǎn)(顯然也沒(méi)有右子結(jié)點(diǎn))。
�、廴�2k+1≤n,則編號(hào)為k的結(jié)點(diǎn)的右子結(jié)點(diǎn)編號(hào)為2k+1;否則該結(jié)點(diǎn)無(wú)右子結(jié)點(diǎn)。
考點(diǎn)8 二叉樹(shù)的遍歷
考試鏈接:
考點(diǎn)8在筆試考試中考核幾率為30%,分值為2分,讀者應(yīng)該熟練掌握各種遍歷的具體算法,能由兩種遍歷的結(jié)果推導(dǎo)另一種遍歷的結(jié)果。
在遍歷二叉樹(shù)的過(guò)程中,一般先遍歷左子樹(shù),再遍歷右子樹(shù)。在先左后右的原則下,根據(jù)訪問(wèn)根結(jié)點(diǎn)的次序,二叉樹(shù)的遍歷分為三類(lèi):前序遍歷、中序遍歷和后序遍歷。
(1)前序遍歷:先訪問(wèn)根結(jié)點(diǎn)、然后遍歷左子樹(shù),最后遍歷右子樹(shù);并且,在遍歷左、右子樹(shù)時(shí),仍然先訪問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù),最后遍歷右子樹(shù)。
(2)中序遍歷:先遍歷左子樹(shù)、然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù);并且,在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后訪問(wèn)根結(jié)點(diǎn),最后遍歷右子樹(shù)。
(3)后序遍歷:先遍歷左子樹(shù)、然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn);并且,在遍歷左、右子樹(shù)時(shí),仍然先遍歷左子樹(shù),然后遍歷右子樹(shù),最后訪問(wèn)根結(jié)點(diǎn)。
疑難解答:樹(shù)與二叉樹(shù)的不同之處是什么?
在二叉樹(shù)中,每一個(gè)結(jié)點(diǎn)的度最大為2,即所有子樹(shù)(左子樹(shù)或右子樹(shù))也均為二叉樹(shù),而樹(shù)結(jié)構(gòu)中的每一個(gè)結(jié)點(diǎn)的度可以是任意的。
相關(guān)推薦:
計(jì)算機(jī)等級(jí)考試合格標(biāo)準(zhǔn)
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |