數(shù)據(jù)結(jié)構(gòu) 樹 二叉樹

1. 樹

1. 樹的定義

(Tree):是n(n>=0)個節(jié)點的有限集,它或為空樹(n=0)狸驳;或為非空樹预明,對于非空樹T: a.有且僅有一個稱之為根的節(jié)點; b.除根節(jié)點以外的其余節(jié)點可分為m個互不相干的有限集T1,T2,…..Ti,Tm,其中每一個集合本身又是一顆樹耙箍,并稱之為根的子樹(SubTree)撰糠。
樹的結(jié)構(gòu)是遞歸的定義,樹的定義中又有樹的定義辩昆,這是樹的固有特性阅酪;

2. 基礎(chǔ)術(shù)語
  • 結(jié)點:樹中的一個獨立單元。
  • 結(jié)點的度:結(jié)點擁有的子樹數(shù)稱為結(jié)點的度。
  • 樹的度:樹內(nèi)各結(jié)點度的最大值术辐。
  • 葉子:度為0的結(jié)點稱為葉子或終端結(jié)點砚尽。
  • 非終端結(jié)點:度不為0的結(jié)點稱為非終端結(jié)點或分支結(jié)點。除根結(jié)點之外辉词,非終端結(jié)點也稱為內(nèi)部結(jié)點必孤。
  • 雙親和孩子:結(jié)點的子樹的根稱為該結(jié)點的孩子,相應(yīng)地瑞躺,該結(jié)點稱為孩子的雙親敷搪。
  • 兄弟:同一個雙親的孩子之間互稱兄弟。
  • 祖先:從根結(jié)點到該結(jié)點所經(jīng)分支上的所有結(jié)點隘蝎。
  • 子孫:以某結(jié)點為根的子樹種的任一結(jié)點都稱為該結(jié)點的子孫购啄。
  • 層次:結(jié)點的層次從根開始定義起,根為第一層嘱么,根的孩子為第二層狮含。樹中任意結(jié)點的層次等于其雙親結(jié)點層次加1。
  • 堂兄弟:其雙親在同一層的結(jié)點互為堂兄弟曼振。
  • 樹的深度:樹中結(jié)點的最大層次稱為樹的深度或高度.
  • 有序樹和無序樹:如果將樹中結(jié)點的各個子樹看成從左至右是有次序的(即不能護換)几迄,則稱該樹為有序樹,否則為無序樹冰评,在有序樹中最左邊的子樹的根稱為第一個孩子映胁,右邊的稱為最后一個孩子.
  • 森林:是m顆互不相干的樹的集合。對樹中的每個結(jié)點而言甲雅,其子樹的集合為森林解孙。

就邏輯結(jié)構(gòu)而言:任何一顆樹都是一個二元組(Tree=(root,F)),其中root為根幾點,F(xiàn)為m顆樹的森林抛人。

RF = {<root,ri>|i=1,2,3,4,.....m,m>0}
該定義有助于得到深林和樹與二叉樹之間轉(zhuǎn)換的遞歸定義弛姜。

2. 二叉樹

二叉樹是一種特殊的樹結(jié)構(gòu),其存儲和處理比一般的樹要簡單妖枚,且一般的樹可以通過轉(zhuǎn)換得到與之對應(yīng)的二叉樹廷臼,這樣就可以采用二叉樹的存儲結(jié)構(gòu)和相關(guān)算法來解決樹的相關(guān)問題。

1. 二叉樹的定義(Binary tree):

二叉樹是n個結(jié)點所構(gòu)成的集合绝页,它或為空樹荠商,或為非空樹,對于非空樹T:

1.有且僅有一個稱之為根的結(jié)點:
2.除根結(jié)點以外的其余結(jié)點分為兩個互不相交的子集T1和T2续誉,分別稱為T的左子樹和右子樹莱没,且都是二叉樹。

2. 二叉樹與樹的區(qū)別:

1.二叉樹每個結(jié)點至多有兩顆子樹(即二叉樹中不存在度大于2的結(jié)點)酷鸦;
2.二叉樹的子樹有左右之分饰躲,切次序不能任意顛倒朴译。

3. 二叉樹的性質(zhì)**

1.在二叉樹的第i層上最多有2i-1個結(jié)點。
2.深度為k的二叉樹至多有2k-1個結(jié)點属铁。
3.對任何一顆二叉樹T,如果其終端結(jié)點數(shù)為n0
,度為2的結(jié)點數(shù)為n2則n0=n2+1躬翁;

4. 特殊二叉樹

滿二叉樹:深度為k且含有2k-1個結(jié)點的二叉樹焦蘑;
完全二叉樹:深度為k且有n個結(jié)點的二叉樹,當(dāng)且僅當(dāng)i每一個結(jié)點都與深度為k的滿二叉樹中編號從1-n的結(jié)點一一對應(yīng)時盒发,稱為完全二叉樹例嘱。

完全二叉樹特點:
1.葉子結(jié)點只可能在層次最大的兩層上出現(xiàn);
2.對任一結(jié)點宁舰,若其右分支下的子孫的最大層次為l拼卵,其左分支下的子孫的最大層次必為l或l+1。

性質(zhì):
1.具有n個結(jié)點的完全二叉樹的深度為[log2n]+1蛮艰。
2.如果對一顆有n個結(jié)點的完全二叉樹的結(jié)點按層序編號腋腮,則對任一結(jié)點i有:

a.如果i=1,則結(jié)點i是二叉樹的根壤蚜,無雙親即寡;
b.如果i>1,則其雙親PARENT(i)是結(jié)點i/2;
c.如果2i>n,則結(jié)點i無左孩子袜刷,否則其左孩子LCHILD(i)是結(jié)點2i聪富;
d.如果2i+1>n,則結(jié)點i無右孩子,否則其右孩子RCHILD(i)是結(jié)點2i+1著蟹;

5. 二叉樹的存儲結(jié)構(gòu)

可采用:順序結(jié)構(gòu)和鏈?zhǔn)浇Y(jié)構(gòu)兩種墩蔓;

順序存儲結(jié)構(gòu):一般適用于完全二叉樹(因為使用順序存儲會浪費空間),所以二叉樹通常還是采用鏈?zhǔn)酱鎯Y(jié)構(gòu)萧豆。 引出另一種鏈?zhǔn)酱鎯?線索鏈表奸披。

遍歷二叉樹
1.遍歷二叉樹(traversing binary tree):指按某條搜索路徑巡訪樹中每個結(jié)點,使得每個結(jié)點均被訪問一次炕横,而且僅被訪問一次源内。

先序遍歷:

1.訪問根結(jié)點;
2.先序遍歷左子樹份殿;
3.先序遍歷右子樹膜钓。

中序遍歷:

1.中序遍歷左子樹;
2.訪問根結(jié)點卿嘲;
3.中序遍歷右子樹颂斜。

后序遍歷:

1.后序遍歷左子樹;
2.后序遍歷右子樹拾枣;
3.訪問根結(jié)點沃疮。

線索二叉樹
有時間再寫

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盒让,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子司蔬,更是在濱河造成了極大的恐慌邑茄,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件俊啼,死亡現(xiàn)場離奇詭異肺缕,居然都是意外死亡,警方通過查閱死者的電腦和手機授帕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門同木,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跛十,你說我怎么就攤上這事彤路。” “怎么了芥映?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵洲尊,是天一觀的道長。 經(jīng)常有香客問我屏轰,道長颊郎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任霎苗,我火速辦了婚禮姆吭,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘唁盏。我一直安慰自己内狸,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布厘擂。 她就那樣靜靜地躺著昆淡,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刽严。 梳的紋絲不亂的頭發(fā)上昂灵,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音舞萄,去河邊找鬼眨补。 笑死,一個胖子當(dāng)著我的面吹牛倒脓,可吹牛的內(nèi)容都是我干的撑螺。 我是一名探鬼主播,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼崎弃,長吁一口氣:“原來是場噩夢啊……” “哼甘晤!你這毒婦竟也來了含潘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤线婚,失蹤者是張志新(化名)和其女友劉穎遏弱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塞弊,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡腾窝,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了居砖。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡驴娃,死狀恐怖奏候,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唇敞,我是刑警寧澤蔗草,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布,位于F島的核電站疆柔,受9級特大地震影響咒精,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旷档,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一模叙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞋屈,春花似錦范咨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至权旷,卻和暖如春替蛉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背拄氯。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工躲查, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人坤邪。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓熙含,卻偏偏與公主長得像,于是被迫代替她去往敵國和親艇纺。 傳聞我的和親對象是個殘疾皇子怎静,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,802評論 2 345

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