本文撇開(kāi)一些非常苦澀矾瘾、難以理解的概念來(lái)講講二叉樹(shù)女轿,僅入門(mén)觀看(或復(fù)習(xí))....
首先,我們來(lái)講講什么是樹(shù):
樹(shù)是一種非線性的數(shù)據(jù)結(jié)構(gòu)壕翩,相對(duì)于線性的數(shù)據(jù)結(jié)構(gòu)(鏈表蛉迹、數(shù)組)而言,樹(shù)的平均運(yùn)行時(shí)間更短(往往與樹(shù)相關(guān)的排序時(shí)間復(fù)雜度都不會(huì)高)
在現(xiàn)實(shí)生活中放妈,我們一般的樹(shù)長(zhǎng)這個(gè)樣子的:
但是在編程的世界中北救,我們一般把樹(shù)“倒”過(guò)來(lái)看,這樣容易我們分析:
一般的樹(shù)是有很多很多個(gè)分支的芜抒,分支下又有很多很多個(gè)分支珍策,如果在程序中研究這個(gè)會(huì)非常麻煩。因?yàn)楸緛?lái)樹(shù)就是非線性的挽绩,而我們計(jì)算機(jī)的內(nèi)存是線性存儲(chǔ)的膛壹,太過(guò)復(fù)雜的話(huà)我們無(wú)法設(shè)計(jì)出來(lái)的。
因此唉堪,我們先來(lái)研究簡(jiǎn)單又經(jīng)常用的---> 二叉樹(shù)
1.1樹(shù)的一些概念
我就拿上面的圖來(lái)進(jìn)行畫(huà)來(lái)講解了:
二叉樹(shù)的意思就是說(shuō):每個(gè)節(jié)點(diǎn)不能多于有兩個(gè)兒子模聋,上面的圖就是一顆二叉樹(shù)。
- 一棵樹(shù)至少會(huì)有一個(gè)節(jié)點(diǎn)(根節(jié)點(diǎn))
-
樹(shù)由節(jié)點(diǎn)組成唠亚,每個(gè)節(jié)點(diǎn)的數(shù)據(jù)結(jié)構(gòu)是這樣的:image.png
- 因此链方,我們定義樹(shù)的時(shí)候往往是->定義節(jié)點(diǎn)->節(jié)點(diǎn)連接起來(lái)就成了樹(shù),而節(jié)點(diǎn)的定義就是:一個(gè)數(shù)據(jù)灶搜、兩個(gè)指針(如果有節(jié)點(diǎn)就指向節(jié)點(diǎn)祟蚀、沒(méi)有節(jié)點(diǎn)就指向null)
作者:Java3y
鏈接:https://juejin.im/post/5ab5a01d518825555c1d9a24