最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python 二叉樹的概念案例詳解

 更新時(shí)間:2021年09月10日 09:16:54   作者:Python碎片  
這篇文章主要介紹了二叉樹的概念案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

二叉樹簡(jiǎn)介

關(guān)于樹的介紹,請(qǐng)參考:http://www.fzitv.net/article/222488.htm

一、二叉樹簡(jiǎn)介

二叉樹是每個(gè)節(jié)點(diǎn)最多有兩個(gè)子樹的樹結(jié)構(gòu),是一種特殊的樹,如下圖,就是一棵二叉樹。

二叉樹是由n(n>=0)個(gè)節(jié)點(diǎn)組成的數(shù)據(jù)集合。當(dāng) n=0 時(shí),二叉樹中沒有節(jié)點(diǎn),稱為空二叉樹。當(dāng) n=1 時(shí),二叉樹只有根節(jié)點(diǎn)一個(gè)節(jié)點(diǎn)。當(dāng) n>1 時(shí),二叉樹的每個(gè)節(jié)點(diǎn)都最多只能有兩個(gè)子樹,遞歸地構(gòu)建成一棵完整的二叉樹。

二叉樹的兩個(gè)子樹被稱為左子樹(left subtree)和右子樹(right subtree)。在二叉樹中,如果節(jié)點(diǎn)沒有子樹,則左子樹和右子樹都為空,如果節(jié)點(diǎn)只有一個(gè)子樹,要根據(jù)子樹的左右來區(qū)分子樹是左子樹還是右子樹,如果節(jié)點(diǎn)有兩個(gè)子樹,則左子樹和右子樹都有。

如果,樹中存在一個(gè)節(jié)點(diǎn),該節(jié)點(diǎn)的子樹超過兩個(gè),則該樹不是二叉樹,如下圖中,節(jié)點(diǎn)C有三個(gè)子樹,所以這不是一棵二叉樹。

二、幾種特殊的二叉樹

只要樹中所有節(jié)點(diǎn)的子樹都不超過兩個(gè)(0個(gè),1個(gè),2個(gè)),這就是一棵普通的二叉樹。在二叉樹中,有一些比較特殊,除了滿足二叉樹的結(jié)構(gòu)外,還滿足一些特殊的規(guī)則,主要有如下幾種。

1. 完全二叉樹:假設(shè)一棵二叉樹的深度為d(d>1),除了第d層外,其它各層的節(jié)點(diǎn)數(shù)目均已達(dá)最大值,且第d層所有節(jié)點(diǎn)從左向右連續(xù)地緊密排列,這樣的二叉樹被稱為完全二叉樹。

完全二叉樹的葉節(jié)點(diǎn)只能出現(xiàn)在最下層和次下層,最下層的葉節(jié)點(diǎn)靠左緊密地排列,次下層如果存在葉節(jié)點(diǎn),葉節(jié)點(diǎn)緊密地靠右排列。

如下圖,樹的深度為4,除了第4層,節(jié)點(diǎn)數(shù)達(dá)到了最大(“掛滿了”),第4層的節(jié)點(diǎn)都是緊密地靠左排列(中間沒有空位),所以這是一棵完全二叉樹。

如下圖,樹的深度也為4,除了第4層,節(jié)點(diǎn)數(shù)也達(dá)到了最大,但是第4層的節(jié)點(diǎn)不是緊靠左側(cè)排列的(節(jié)點(diǎn)E沒有子節(jié)點(diǎn),空了兩個(gè)位置),所以這不是一棵完全二叉樹,只是一棵普通的二叉樹。

2. 滿二叉樹:所有葉節(jié)點(diǎn)都在最底層的完全二叉樹稱為滿二叉樹。滿二叉樹是完全二叉樹中的特殊情況,除了滿足完全二叉樹的特征,還滿足所有葉節(jié)點(diǎn)都在最底層。滿二叉樹是相同深度的二叉樹中葉節(jié)點(diǎn)最多的樹。

如下圖,這首先是一棵完全二叉樹,其次,所有的葉節(jié)點(diǎn)都在最底層,所以這是一棵滿二叉樹。其實(shí),滿二叉樹也可以這么定義,二叉樹有節(jié)點(diǎn)的所有層,節(jié)點(diǎn)數(shù)目均已達(dá)最大值,則這是一棵滿二叉樹。

3. 平衡二叉樹(AVL樹):如果二叉樹的所有節(jié)點(diǎn)的兩棵子樹的高度差不大于1,則二叉樹被稱為平衡二叉樹。

如上圖中的滿二叉樹,任何節(jié)點(diǎn)的兩棵子樹高度差都是0(高度都相等,高度差不大于1),所以這是一棵平衡二叉樹。

如下圖中的二叉樹,對(duì)于根節(jié)點(diǎn)A,左子樹是以節(jié)點(diǎn)B為根的子樹,高度為4,右子樹是以節(jié)點(diǎn)C為根的子樹,高為2,A的左子樹與右子樹的高度差為2(高度差大于1),所以這不是一棵平衡二叉樹。

AVL樹得名于它的發(fā)明者G. M. Adelson-Velsky和E. M. Landis,是兩人姓的縮寫。AVL樹中任何節(jié)點(diǎn)的兩個(gè)子樹的高度差不大于1,通過高度來判斷是否平衡,所以也被稱為高度平衡樹。

4. 排序二叉樹(二叉查找樹,Binary Search Tree):又稱為二叉搜索樹、有序二叉樹。

排序二叉樹需要具有如下的性質(zhì):

4.1 如果二叉樹的左子樹不為空,則左子樹上所有節(jié)點(diǎn)的值均小于它的根節(jié)點(diǎn)的值。

4.2 如果二叉樹的右子樹不為空,則右子樹上所有節(jié)點(diǎn)的值均大于它的根節(jié)點(diǎn)的值。

4.3 如果獨(dú)立地看,左子樹、右子樹也分別為排序二叉樹,用遞歸的思想,直到樹的葉節(jié)點(diǎn)。

如下圖,根節(jié)點(diǎn)8的左子樹中,所有節(jié)點(diǎn)的值都小于根節(jié)點(diǎn),右子樹中,所有節(jié)點(diǎn)的值都大于根節(jié)點(diǎn),并且左子樹和右子樹都是排序二叉樹,所以這是一棵排序二叉樹。

5. 斜樹:除了葉節(jié)點(diǎn),所有節(jié)點(diǎn)都只有左子樹的二叉樹稱為左斜樹。除了葉節(jié)點(diǎn),所有節(jié)點(diǎn)都只有右子樹的二叉樹稱為右斜樹。他們統(tǒng)稱為斜樹,判斷二叉樹是否為斜樹,主要是看樹的結(jié)構(gòu),對(duì)節(jié)點(diǎn)的值沒有要求。

如下圖,左邊的樹中,除了葉節(jié)點(diǎn)D,所有節(jié)點(diǎn)都只有左子樹,這是一棵左斜樹,同理,右邊的樹是一棵右斜樹。

三、二叉樹的特點(diǎn)和性質(zhì)

通過對(duì)二叉樹的介紹和對(duì)幾種特殊二叉樹的了解,可知二叉樹有以下特點(diǎn):

1. 每個(gè)節(jié)點(diǎn)最多有兩顆子樹,所以二叉樹中節(jié)點(diǎn)的度不大于2,二叉樹的度也不會(huì)大于2。

2. 左子樹和右子樹的次序不能顛倒。

3. 即使某節(jié)點(diǎn)只有一棵子樹,也要根據(jù)左右來區(qū)分它是左子樹還是右子樹。

此外,二叉樹還具有如下性質(zhì):

1. 在二叉樹的第i層,至多有 2^(i-1) 個(gè)節(jié)點(diǎn)(i>0) 。

這里說的是至多的情況,滿二叉樹的每一層節(jié)點(diǎn)都“掛滿”了,所以可以用下圖中的滿二叉樹來驗(yàn)證,第1層的節(jié)點(diǎn)數(shù)為2^(1-1)=1個(gè),... 第4層的節(jié)點(diǎn)個(gè)數(shù)最多為 2^(4-1)=8個(gè)。

2. 深度為i的二叉樹至多有 2^i - 1 個(gè)節(jié)點(diǎn)(k>0) 。

這里也是說至多的情況,所以也用滿二叉樹來驗(yàn)證,深度為4時(shí),二叉樹的節(jié)點(diǎn)數(shù)最多為 2^4 - 1=16-1=15個(gè)。

3. 對(duì)于任意一棵二叉樹,如果其葉節(jié)點(diǎn)數(shù)為M,度為2的節(jié)點(diǎn)總數(shù)為N,則 M=N+1 。

為了不失一般性,下圖中的樹是一棵普通的二叉樹,葉節(jié)點(diǎn)為 F,H,I,J,K,L ,共6個(gè),度為2的節(jié)點(diǎn)為 A,B,C,D,G ,共5個(gè)。

4. 具有n個(gè)節(jié)點(diǎn)的滿二叉樹的深度必為 log2(n+1) 。這個(gè)性質(zhì)是上面第2點(diǎn)的逆運(yùn)算。

5. 對(duì)于一棵完全二叉樹,若從上至下、從左至右編號(hào),則編號(hào)為 i 的節(jié)點(diǎn),(葉節(jié)點(diǎn)除外)其左子節(jié)點(diǎn)的編號(hào)必為2i,(葉節(jié)點(diǎn)除外)其右子節(jié)點(diǎn)的編號(hào)必為 2i+1,(根節(jié)點(diǎn)除外)其父節(jié)點(diǎn)的編號(hào)必為i/2(取整除)。

如下圖,這是一棵完全二叉樹,已經(jīng)按規(guī)則編好號(hào)了,可以任意取一個(gè)節(jié)點(diǎn)進(jìn)行驗(yàn)證,都是符合此性質(zhì)的。

到此這篇關(guān)于二叉樹的概念案例詳解的文章就介紹到這了,更多相關(guān)二叉樹的概念內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter lab文件導(dǎo)出/下載方式

    jupyter lab文件導(dǎo)出/下載方式

    這篇文章主要介紹了jupyter lab文件導(dǎo)出/下載方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python爬蟲Requests庫的使用詳情

    Python爬蟲Requests庫的使用詳情

    這篇文章主要介紹了Python爬蟲Requests庫的使用詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 快速查詢Python文檔方法分享

    快速查詢Python文檔方法分享

    這篇文章主要介紹了快速查詢Python文檔方法分享,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2017-12-12
  • 修改python plot折線圖的坐標(biāo)軸刻度方法

    修改python plot折線圖的坐標(biāo)軸刻度方法

    今天小編就為大家分享一篇修改python plot折線圖的坐標(biāo)軸刻度方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • Python socket非阻塞模塊應(yīng)用示例

    Python socket非阻塞模塊應(yīng)用示例

    這篇文章主要介紹了Python socket非阻塞模塊,結(jié)合實(shí)例形式分析了Python socket非阻塞模塊通信相關(guān)操作技巧,需要的朋友可以參考下
    2019-09-09
  • Django項(xiàng)目中表的查詢的操作

    Django項(xiàng)目中表的查詢的操作

    這篇文章主要介紹了Django項(xiàng)目中表的查詢的操作,文中給大家提到了Django項(xiàng)目 ORM常用的十三種查詢方法,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Python argparse模塊應(yīng)用實(shí)例解析

    Python argparse模塊應(yīng)用實(shí)例解析

    這篇文章主要介紹了Python argparse模塊應(yīng)用實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • python 實(shí)現(xiàn)對(duì)文件夾中的圖像連續(xù)重命名方法

    python 實(shí)現(xiàn)對(duì)文件夾中的圖像連續(xù)重命名方法

    今天小編就為大家分享一篇python 實(shí)現(xiàn)對(duì)文件夾中的圖像連續(xù)重命名方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • python opencv實(shí)現(xiàn)圖片旋轉(zhuǎn)矩形分割

    python opencv實(shí)現(xiàn)圖片旋轉(zhuǎn)矩形分割

    這篇文章主要為大家詳細(xì)介紹了python opencv實(shí)現(xiàn)圖片旋轉(zhuǎn)矩形分割,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-07-07
  • Python3.0 實(shí)現(xiàn)決策樹算法的流程

    Python3.0 實(shí)現(xiàn)決策樹算法的流程

    這篇文章主要介紹了Python3.0 實(shí)現(xiàn)決策樹算法的流程,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-08-08

最新評(píng)論

双辽市| 天水市| 福海县| 疏勒县| 临夏市| 安徽省| 亚东县| 濉溪县| 都匀市| 焦作市| 青河县| 闵行区| 中方县| 新宾| 监利县| 玉溪市| 锡林郭勒盟| 双鸭山市| 仁布县| 北票市| 大洼县| 武城县| 株洲县| 年辖:市辖区| 马山县| 岑巩县| 都兰县| 安国市| 灵丘县| 沙河市| 鄂托克前旗| 繁昌县| 四子王旗| 运城市| 阜宁县| 北京市| 报价| 综艺| 延安市| 遵义县| 柘荣县|