日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

树型结构

發(fā)布時(shí)間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 树型结构 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

樹型結(jié)構(gòu)的基本概念


對(duì)大量的輸入數(shù)據(jù),鏈表的線性訪問時(shí)間太慢,不宜使用。本文探討另外一種重要的數(shù)據(jù)結(jié)構(gòu)----樹,其大部分時(shí)間可以保證操作的運(yùn)行平均時(shí)間復(fù)雜度為O(logN),第一部分先來看一下樹的一些預(yù)備知識(shí)。

首先看一下樹形結(jié)構(gòu)的樣子,下圖代表的是樹型結(jié)構(gòu)的一般形態(tài):

由上圖看得出樹是一些節(jié)點(diǎn)的集合,總結(jié)一下樹的一些基本概念:

1、結(jié)點(diǎn):樹中的數(shù)據(jù)元素都稱之為結(jié)點(diǎn)

2、根:最上面的結(jié)點(diǎn)稱之為根,一顆樹只有一個(gè)根且由根發(fā)展而來,從另外一個(gè)角度來說,每個(gè)結(jié)點(diǎn)都可以認(rèn)為是其子樹的根

3、父親:結(jié)點(diǎn)的上層結(jié)點(diǎn),如圖中,結(jié)點(diǎn)K的父親是E、結(jié)點(diǎn)L的父親是G

4、兄弟:具有相同父親的結(jié)點(diǎn)稱為兄弟,圖中F、G、H互為兄弟

5、結(jié)點(diǎn)的度:結(jié)點(diǎn)所擁有的子樹的個(gè)數(shù)稱之為結(jié)點(diǎn)的度,如結(jié)點(diǎn)B的度為3

6、樹葉:度為0的結(jié)點(diǎn),也叫作終端結(jié)點(diǎn),圖中D、K、F、L、H、I、J都是樹葉

7、分支結(jié)點(diǎn):度不為0的結(jié)點(diǎn),也叫作非終端結(jié)點(diǎn)或內(nèi)部結(jié)點(diǎn),圖中根、A、B、C、E、G都是分支結(jié)點(diǎn)

8、結(jié)點(diǎn)的層次:從根節(jié)點(diǎn)到樹中某結(jié)點(diǎn)所經(jīng)路徑上的分支樹稱為該結(jié)點(diǎn)的層次,根節(jié)點(diǎn)的層次規(guī)定為1,其余結(jié)點(diǎn)的層次等于其父親結(jié)點(diǎn)的層次+1

9、樹的深度:樹中結(jié)點(diǎn)的最大層次數(shù),圖中樹的深度為4

?

二叉樹

上面的是樹的一般形態(tài),下面看一下二叉樹。二叉樹是一棵樹,其中每個(gè)結(jié)點(diǎn)都不能有多于兩個(gè)子樹

下圖展示了一顆二叉樹:

二叉樹的一個(gè)性質(zhì)是一顆平均二叉樹的深度要比及結(jié)點(diǎn)個(gè)數(shù)N小得多,這個(gè)性質(zhì)很重要,尤其對(duì)于特殊類型的二叉樹即二叉查找樹而言,其深度的平均值是O(logN),這將大大降低查找時(shí)的時(shí)間復(fù)雜度。

當(dāng)然,二叉樹在運(yùn)用得不好的情況下的情況下是有嚴(yán)重的問題的,即:

樹的深度大到了N-1,這樣的情況是絕對(duì)不允許的,這種樹也被稱為不平衡樹。在下一部分的二叉查找樹說明完之后,會(huì)講讓二叉樹帶有自平衡條件,成為平衡樹。

?

二叉查找樹

二叉樹的一個(gè)重要應(yīng)用是在它們查找中的使用。假設(shè)樹中的每個(gè)結(jié)點(diǎn)存儲(chǔ)一項(xiàng)數(shù)據(jù),使得二叉樹成為二叉查找樹的性質(zhì)是:對(duì)于樹中的每個(gè)結(jié)點(diǎn)X,它的左子樹中所有項(xiàng)的值小于X,而它的右子樹中所有項(xiàng)的值大于X,這意味著該樹所有的元素可以用某種一致的方式排序

如下圖:

這就是一個(gè)二叉查找樹。但是如果我這么修改一下:

這就不是一個(gè)二叉查找樹了,因?yàn)樵诟?jié)點(diǎn)的左子樹中,有一個(gè)節(jié)點(diǎn)是11。

?

AVL樹

前面已經(jīng)講到過了,在生成二叉樹/二叉查找樹的時(shí)候是非常容易失衡的,造成的最壞的情況就是一邊倒(只有左子樹/右子樹),這樣將會(huì)導(dǎo)致樹的檢索效率大大降低,所以為了維持二叉樹的平衡,大牛們提出了各種實(shí)現(xiàn)的算法,如:AVL樹、節(jié)點(diǎn)大小平衡樹(SBT)、伸展樹、樹堆(Treap)、紅黑樹等等。

這里講AVL樹----一種帶有平衡條件的二叉查找樹,這種平衡條件必須要容易保持,而且它保證樹的深度必須是O(logN)。

對(duì)于AVL樹來說,它的平衡必須滿足以下特征之一:

1、空樹

2、每個(gè)結(jié)點(diǎn)的左子樹和右子樹深度最多差1

可以看一下下圖:

圖中,左邊的樹是AVL樹,右邊的樹不是。因?yàn)楹茱@然,從根結(jié)點(diǎn)7看起,右子樹的深度為1,而左子樹7-->2-->4-->5(3)這條路徑深度為3,不滿足每個(gè)結(jié)點(diǎn)的左子樹和右子樹深度最多差1的條件。

可以證明,一顆AVL樹的高度最多為1.44 * log(N + 2) - 1.328,但是實(shí)際上的高度只略大于logN

?

紅黑樹

紅黑樹是對(duì)AVL樹的另一種變種。紅黑樹顧名思義就是結(jié)點(diǎn)是紅色或者黑色的平衡二叉樹,它通過顏色的約束來維持著二叉樹的平衡。下圖為一顆典型的二叉樹:

對(duì)于一顆有效的紅黑樹而言我們必須增加如下規(guī)則:

1、每個(gè)結(jié)點(diǎn)都只能是紅色或者黑色

2、根節(jié)點(diǎn)是黑色

3、每片葉子都是黑色的

4、如果一個(gè)結(jié)點(diǎn)是紅色的,則它的兩個(gè)子節(jié)點(diǎn)都是黑色的,也就是說在一條路徑上不能出現(xiàn)相鄰的兩個(gè)紅色結(jié)點(diǎn)

5、從任意一個(gè)結(jié)點(diǎn)到其每個(gè)葉子的所有路徑都包含著相同數(shù)目的黑色結(jié)點(diǎn)

這些約束強(qiáng)制了紅黑樹的關(guān)鍵性質(zhì):從根到葉子的最長(zhǎng)的可能路徑不多于最短的可能路徑的兩倍長(zhǎng)。結(jié)果就是這棵樹大致上是平衡的,因?yàn)椴迦搿h除和查找某個(gè)值得最壞情況時(shí)間都要求與樹的高度成比例,這個(gè)高度理論上限允許紅黑樹只在最壞情況下都是高效的。

再具體就不說了,可以參看http://www.cnblogs.com/yangecnu/p/Introduce-Red-Black-Tree.html,對(duì)紅黑樹的講解寫得非常好。

對(duì)了,TreeMap和TreeSet就是紅黑樹的典型實(shí)現(xiàn)。

總結(jié)

以上是生活随笔為你收集整理的树型结构的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 噼里啪啦免费看 | videosex抽搐痉挛高潮 | 一级小毛片| 污视频导航 | 日本成人在线免费观看 | 国产成人无码专区 | 亚洲熟妇av一区二区三区漫画 | 成人av在线网站 | 国产情侣久久久久aⅴ免费 caoporn成人 | 日本视频在线免费观看 | 精品国产成人亚洲午夜福利 | 成人三级电影网站 | 2018天天干天天操 | 羞辱狗奴的句子有哪些 | 杨幂一区二区三区免费看视频 | 色偷偷免费| 激情小说av | 九九一级片 | 成年人91视频| 亚洲麻豆精品 | 少妇高潮大叫好爽喷水 | 天天干天天日夜夜操 | 国产露脸91国语对白 | 丰满人妻av一区二区三区 | 毛片网页| 亚洲最大毛片 | 美女被变态侵犯 | 天码人妻一区二区三区在线看 | 日韩精品一区二区三区不卡 | 老司机久久 | 1024欧美| 欧美黄色免费大片 | 中国黄色1级片 | 亚洲欧美激情精品一区二区 | 日日干夜 | 精品免费一区二区三区 | 国产精品久久久久久在线观看 | 成人啪啪 | 懂色av一区二区夜夜嗨 | av色欲无码人妻中文字幕 | а√天堂8资源在线官网 | 国产乱子伦视频一区二区三区 | 免费高清成人 | 欧美天天视频 | 中文字幕视频一区二区 | 毛片视频播放 | 永久在线观看 | 亚洲av无码国产精品麻豆天美 | 国产精品500部 | 岛国av动作片| 亚洲婷婷综合网 | 色七七在线 | 天堂资源最新在线 | 少妇又紧又色又爽又刺激视频 | 操老女人视频 | 中国特级黄色大片 | 天天干狠狠 | 亚洲视频网站在线观看 | 极品少妇在线 | 久久久久久国产精品视频 | 91丝袜视频 | 一区二区三区四区中文字幕 | 欧美精品自拍 | 亚洲精品中文字幕 | 玩弄丰满少妇xxxxx性多毛 | www.狠狠操.com | 97avcc| 91在线观看视频 | 青草视频免费观看 | 老熟妇仑乱一区二区av | 亚洲成人日韩在线 | 亚洲一区二区三区欧美 | 久久一区二区电影 | 日韩h在线| 巨乳美女在线 | 欧美人与zoxxxx另类 | 蜜臀99久久精品久久久久久软件 | 天堂av2014 | 国产日产精品一区二区三区 | 欧美成人国产va精品日本一级 | 日本精品一二区 | 丰满放荡岳乱妇91ww | 日本乱轮视频 | 久久精品a亚洲国产v高清不卡 | 亚洲成人av电影在线 | 健身教练巨大粗爽gay视频 | 欧美亚洲专区 | 狠狠干一区 | 色拍拍视频 | 中文在线永久免费观看 | 欧美激情一区二区三区p站 欧美mv日韩mv国产网站app | 欧洲精品在线播放 | 精品人妻伦一二三区久 | 国产成人超碰人人澡人人澡 | 欧美午夜在线 | 性做久久久久久 | 精品产国自在拍 | 国产成人精品亚洲 | 国产视频一区在线观看 |