那些年錯(cuò)過(guò)的數(shù)據(jù)結(jié)構(gòu)與算法(九)

本篇文章將結(jié)合《算法》第4版、業(yè)界大牛的博客和自己的理解帐要,具體描述二叉樹(shù)的一些概念把敞,如有錯(cuò)誤,請(qǐng)大佬指出榨惠。如有侵權(quán)奋早,請(qǐng)聯(lián)系我刪除,謝謝赠橙。

二叉樹(shù)

1.基本概念

  • (1)二叉樹(shù)是一個(gè)有限的結(jié)點(diǎn)集合伸蚯,該集合或者為空,或者由一個(gè)根結(jié)點(diǎn)及其兩棵互不相交的左简烤、右二叉子樹(shù)所組成剂邮。
    二叉樹(shù)具有以下特點(diǎn):二叉樹(shù)可以為空,空的二叉樹(shù)沒(méi)有結(jié)點(diǎn)横侦,非空二叉樹(shù)有且只有一個(gè)根結(jié)點(diǎn)挥萌;每一個(gè)結(jié)點(diǎn)最多只有2棵子樹(shù)绰姻,且分別稱(chēng)為該結(jié)點(diǎn)的左子樹(shù)和右子樹(shù);二叉樹(shù)的子樹(shù)有左引瀑、右之分狂芋,其次序不能任意顛倒。

  • (2)滿(mǎn)二叉樹(shù)和完全二叉樹(shù)
    滿(mǎn)二叉樹(shù)是指除了最后一層外憨栽,每一層上的所有結(jié)點(diǎn)都有2個(gè)子結(jié)點(diǎn)的二叉樹(shù)帜矾。
    完全二叉樹(shù)是指除了最后一層外,每一層上的結(jié)點(diǎn)樹(shù)均達(dá)到最大值屑柔,在最后一層上只缺少右邊的若干結(jié)點(diǎn)屡萤。
    滿(mǎn)二叉樹(shù)一定是完全二叉樹(shù),但完全二叉樹(shù)不一定是滿(mǎn)二叉樹(shù)掸宛。

2.主要性質(zhì)(原諒我不知道怎么打上標(biāo)>.<)

  • 一棵非空二叉樹(shù)的第k層上最多有(2的k-1次方)個(gè)結(jié)點(diǎn)(K≥1)死陆;
  • 深度為m的滿(mǎn)二叉樹(shù)中有(2的m次方-1)個(gè)結(jié)點(diǎn);
  • 對(duì)任何一棵二叉樹(shù)而言唧瘾,度為0的結(jié)點(diǎn)(即葉子結(jié)點(diǎn))總是比度為2的結(jié)點(diǎn)多一個(gè)措译;
  • 具有n個(gè)結(jié)點(diǎn)的二叉樹(shù)的深度k至少為[log?n]+1,其中[log?n]取log?n的整數(shù)部分;
  • 具有n個(gè)結(jié)點(diǎn)的完全二叉樹(shù)的深度為[log?n]+1饰序;
  • 設(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)為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)箫章。

3.存儲(chǔ)結(jié)構(gòu)

二叉樹(shù)通常采用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。用于存儲(chǔ)二叉樹(shù)中各元素的存儲(chǔ)結(jié)點(diǎn)由數(shù)據(jù)域和指針域組成镜会。由于每個(gè)元素可以有2個(gè)后件(即2個(gè)子結(jié)點(diǎn))檬寂,所以用于存儲(chǔ)二叉樹(shù)的存儲(chǔ)結(jié)點(diǎn)的指針域有2個(gè):一個(gè)指向該結(jié)點(diǎn)的左子節(jié)點(diǎn)的存儲(chǔ)地址,稱(chēng)為左指針域戳表;另外一個(gè)指向該結(jié)點(diǎn)的右子結(jié)點(diǎn)的存儲(chǔ)地址桶至,稱(chēng)為右指針域昼伴。因此二叉樹(shù)的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)也成為二叉鏈表。二叉樹(shù)的一個(gè)存儲(chǔ)結(jié)點(diǎn)如下:

左指針域 數(shù)據(jù)域 右指針域
L(i) Data(i) R(i)

對(duì)于滿(mǎn)二叉樹(shù)和完全二叉樹(shù)镣屹,可以按層級(jí)進(jìn)行順序存儲(chǔ)圃郊。

4.二叉樹(shù)的遍歷

二叉樹(shù)的遍歷是指不重復(fù)地訪(fǎng)問(wèn)二叉樹(shù)中的所有結(jié)點(diǎn)。分為前序遍歷女蜈,中序遍歷和后序遍歷持舆。

  • 前序遍歷首先訪(fǎng)問(wèn)根結(jié)點(diǎn),然后遍歷左子樹(shù)伪窖,最后遍歷右子樹(shù)逸寓。
  • 中序遍歷首先訪(fǎng)問(wèn)左子樹(shù),然后遍歷根結(jié)點(diǎn)惰许,最后遍歷右子樹(shù)席覆。
  • 后序遍歷首先訪(fǎng)問(wèn)左子樹(shù),然后遍歷右子樹(shù)汹买,最后遍歷根結(jié)點(diǎn)佩伤。

下面用一個(gè)二叉樹(shù)的例子進(jìn)行說(shuō)明,


tree.png

對(duì)該二叉樹(shù)進(jìn)行3種遍歷晦毙,

  • 前序遍歷的結(jié)果為:A-B-D-G-E-H-C-F-I
  • 中序遍歷的結(jié)果為:G-D-B-E-H-A-C-F-I
  • 后序遍歷的結(jié)果為:G-D-B-E-H-I-F-C-A

總結(jié):

  • 已知前序遍歷序列和中序遍歷序列生巡,可以唯一確定這棵二叉樹(shù);
  • 已知后序遍歷序列和中序遍歷序列见妒,可以唯一確定這棵二叉樹(shù)孤荣;
  • 已知前序遍歷序列和后序遍歷序列,不能確定二叉樹(shù)须揣。

這一篇講的是二叉樹(shù)的基本要點(diǎn)盐股,內(nèi)容挺多,還很重要耻卡,筆試撤柚考點(diǎn),需要重視卵酪。下一篇講查找技術(shù)幌蚊,講應(yīng)用最廣泛的順序查找和二分法查找。敬請(qǐng)期待哦<( ̄︶ ̄)>溃卡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末溢豆,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瘸羡,更是在濱河造成了極大的恐慌漩仙,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,599評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異讯赏,居然都是意外死亡垮兑,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)漱挎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)系枪,“玉大人,你說(shuō)我怎么就攤上這事磕谅∷揭” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 158,084評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵膊夹,是天一觀(guān)的道長(zhǎng)衬浑。 經(jīng)常有香客問(wèn)我,道長(zhǎng)放刨,這世上最難降的妖魔是什么工秩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,708評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮进统,結(jié)果婚禮上助币,老公的妹妹穿的比我還像新娘。我一直安慰自己螟碎,他們只是感情好眉菱,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,813評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著掉分,像睡著了一般俭缓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上酥郭,一...
    開(kāi)封第一講書(shū)人閱讀 50,021評(píng)論 1 291
  • 那天华坦,我揣著相機(jī)與錄音,去河邊找鬼不从。 笑死惜姐,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的消返。 我是一名探鬼主播载弄,決...
    沈念sama閱讀 39,120評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼耘拇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼撵颊!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起惫叛,我...
    開(kāi)封第一講書(shū)人閱讀 37,866評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤倡勇,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體妻熊,經(jīng)...
    沈念sama閱讀 44,308評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡夸浅,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,633評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了扔役。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片帆喇。...
    茶點(diǎn)故事閱讀 38,768評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亿胸,靈堂內(nèi)的尸體忽然破棺而出坯钦,到底是詐尸還是另有隱情,我是刑警寧澤侈玄,帶...
    沈念sama閱讀 34,461評(píng)論 4 333
  • 正文 年R本政府宣布婉刀,位于F島的核電站,受9級(jí)特大地震影響序仙,放射性物質(zhì)發(fā)生泄漏突颊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,094評(píng)論 3 317
  • 文/蒙蒙 一潘悼、第九天 我趴在偏房一處隱蔽的房頂上張望律秃。 院中可真熱鬧,春花似錦挥等、人聲如沸友绝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,850評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)迁客。三九已至,卻和暖如春辞槐,著一層夾襖步出監(jiān)牢的瞬間掷漱,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,082評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工榄檬, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留卜范,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,571評(píng)論 2 362
  • 正文 我出身青樓鹿榜,卻偏偏與公主長(zhǎng)得像海雪,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子舱殿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,666評(píng)論 2 350

推薦閱讀更多精彩內(nèi)容