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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【数据结构】_树与二叉树

發布時間:2023/12/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【数据结构】_树与二叉树 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

引言

一、什么是樹?

1、樹的定義

2、樹的特點

3、樹的表示法

二、樹的一些基本術語

三、樹的性質

四、什么是二叉樹?

1、基本概念

2、二叉樹的五種基本形態

3、二叉樹的性質

?五、滿二叉樹、完全二叉樹和二叉查找樹

1、滿二叉樹

2、完全二叉樹

3、二叉查找樹

?六、二叉樹的遍歷

1、 先序遍歷

2、中序遍歷

3、后序遍歷

七、君子藏器于身,待時而動


引言

棄我去者,昨日之日不可留;
亂我心者,今日之日多煩憂。
長風萬里送秋雁,對此可以酣高樓。
蓬萊文章建安骨,中間小謝又清發。
俱懷逸興壯思飛,欲上青天攬明月。
抽刀斷水水更流,舉杯消愁愁更愁。
人生在世不稱意,明朝散發弄扁舟。

——李白

(眾所周知,李白...是一個刺客。)

一、什么是樹?


1、樹的定義

樹:樹狀圖是一種數據結構,它是由n(n>=1)個有限節點組成一個具有層次關系的集合。把它叫做“樹”是因為它看起來像一棵倒掛的樹,也就是說它是根朝上,而葉朝下的。它具有以下的特點:?

?2、樹的特點

每個節點有零個或多個子節點;

沒有父節點的節點稱為根節點;

每一個非根節點有且只有一個父節點;

除了根節點外,每個子節點可以分為多個不相交的子樹;

?3、樹的表示法

樹形表示法

嵌套集合表示法

凹形表表示法

廣義表表示法

二、樹的一些基本術語


節點:節點包括一個數據元素及若干指向其他子樹的分支。
節點的度:節點所擁有子樹的個數稱為節點的度。
葉節點:度為0的節點成為葉結點,葉結點也稱為終端節點。
分支節點:度不為0的節點稱為分支節點,分支節點又稱非終端節點。一棵樹中排除葉結點外的所有節點都是分支節點。
祖先節點:從根節點到該節點所經分支上的所有節點。
子孫節點:以某節點為根節點的子樹中所有節點
雙親節點:樹中某節點有孩子節點,則這個節點稱為它孩子節點的雙親節點,雙親節點也成為前驅節點。
孩子節點:樹中一個節點的子樹的根節點稱為該節點的孩子節點,孩子節點也稱為后繼節點。
兄弟節點:具有相同雙親節點的節點稱為兄弟節點。
樹的度:樹中所有節點的度的最大值成為該樹的度。
節點的層次:從根節點到樹中某節點所經路徑上的分支也稱為該節點的層次,根節點的層次為1,其他節點層次是雙親節點層次加1.
樹的深度:樹中所有節點的層次的最大值稱為該樹的深度。
?

1)考慮結點K。根A到結點K的唯一路徑上的任意結點,稱為結點K的祖先。如結點B是結點K的祖先,而結點K是結點B的子孫。路徑上最接近結點K的結點K的結點E稱為K的雙親,而K為結點E的孩子。根A是樹中唯一沒有雙親的結點。有相同雙親的結點稱為兄弟,如結點K和結點L有相同的雙親E,即K和L為兄弟。


2)樹中一個結點的孩子個數稱為該結點的度,樹中結點的最大度數稱為樹的度。如結點B的度等于2,結點D的度為3,樹的度為3。


3)度大于0的結點稱為分支結點(又稱非終端結點);度為0 (沒有子女結點)的結點稱為葉子結點(又稱終端結點)。在分支結點中,每個結點的分支數就是該結點的度。


4)結點的深度、高度和層次。結點的層次從樹根開始定義,根結點為第1層, 它的子結點為第2層,

以此類雅。雙親在阿一層的結點互為堂兄弟, 圖5.1 中結點G與E.EH.互為意兄弟。結點的深度是從根結點開始自頂向下連層累加的。結點的高度是從葉結點開始自底向上逐層累加的。樹的高度(或深度)是樹中結點的最大層數。

5)有序樹和無序樹。樹中結點的各子樹從左到右是有次序的,不能互換,稱該樹為有序樹,否則稱為無序樹。假設圖5.1為有序樹,若將子結點位置互換,則變成一棵不同的樹。


6)路徑和路徑長度。樹中兩個結點之間的路徑是由這兩個結點之間所經過的結點序列構成的,而路徑長度是路徑上所經過的邊的個數。
注意:由于樹中的分支是有向的,即從雙親指向孩子,所以樹中的路徑是從上向下的,同一雙親的兩個孩子之間不存在路徑。


7)森林。森林是m (m>=0)棵互不相交的樹的集合。森林的概念與樹的概念十分相近,因為只要把樹的根結點刪去就成了森林。反之,只要給m棵獨立的樹加上一個結點,并把這m棵樹作為該結點的子樹,則森林就變成了樹。

三、樹的性質


1)樹中的結點數等于所有結點的度數加1.


2)度為m的樹中第i層上至多有m^(i-1)個結點(i>=1)。


3)高度為h的m叉樹至多有(m^h-1)/ (m - 1) 個結點”。


4)具有n個結點的m又樹的最小高度為㏒m (n(m -1)+ 1)

四、什么是二叉樹?


1、基本概念

二叉樹,就是度不差過2的樹(節點最多有兩個分杈)

?二又樹是另一種樹形結構, 其特點是每個結點至多只有兩棵子樹 (即二叉樹中不存在度大于2的結點)。并且二叉樹的子樹有左右之分,其次序不能任意順倒。

?2、二叉樹的五種基本形態

1、 空二叉樹(什么都沒有,nothing)

2、 只有一個根節點的二叉樹(左右子樹為空)

3、 右子樹為空的二叉樹(右腿斷了)

4、 左子樹為空的二叉樹(左腿斷了)

5、 左右子樹都非空的的二叉樹(既有左子樹又有右子樹)?

?3、二叉樹的性質

性質1:二叉樹第i層上的結點數目最多為2^(i-1)(i>=1)

性質2:深度為k的二叉樹至多有2^k - 1個結點(k>=1)

性質3:包含n個結點的二叉樹的高度至少為(log2n)+1

性質4:在任意一棵二叉樹中,若終端結點的個數為n0,度為2的結點數為n2,則n0=n2+1

?五、滿二叉樹、完全二叉樹和二叉查找樹


1、滿二叉樹

高度為h,并且由2h-1個結點組成的二叉樹,稱為滿二叉樹。

2、完全二叉樹

一棵二叉樹中,只有最下面兩層結點的度可以小于2,并且最下層的葉結點集中在靠左的若干位置上,這樣的二叉樹稱為完全二叉樹。

?特點:葉子結點只能出現在最下層和次下層,且最下層的葉子結點集中在樹的左部。顯然,一棵滿二叉樹必定是一棵完全二叉樹,而完全二叉樹未必是滿二叉樹。

例題:如果一個完全二叉樹的結點總數為768個,求葉子結點的個數

由二叉樹的性質知:n0=n2+1,將之帶入768=n0+n1+n2中得:768=n1+2n2+1,因為完全二叉樹度為1的結點個數要么為0,要么為1,那么就把n1=0或者1都代入公式中,很容易發現n1=1才符合條件。所以算出來n2=383,所以葉子結點個數n0=n2+1=384。

總結規律:如果一棵完全二叉樹的結點總數為n,那么葉子結點等于n/2(當n為偶數時)或者(n+1)/2(當n為奇數時)?

?3、二叉查找樹

二叉查找樹又被稱為二叉搜索樹。設x為二叉查找樹中的一個結點,x結點包含關鍵字key,結點x的key值計為key[x]。如果y是x的左子樹中的一個結點,則key[y]<=key[x];如果y是x的右子樹的一個結點,則key[y]>=key[x]

?(1)若任意結點的左子樹不空,則左子樹上所有結點的值均小于它的根結點的值。

(2)任意結點的右子樹不空,則右子樹上所有結點的值均大于它的根結點的值。

(3)任意結點的左、右子樹也分別為二叉查找樹。

(4)沒有鍵值相等的結點。

?

?六、二叉樹的遍歷


遵循某種次序,遍歷二叉樹中的所有節點,使得每個節點被訪問一次,而且僅訪問一次。“訪問”:即對節點施行某些操作。

  • 前(先)序遍歷:先訪問根節點,再訪問左子樹,最后訪問右子樹。
  • 中序遍歷:先訪問左子樹,再訪問根節點,最后訪問右子樹。
  • 后序遍歷:先訪問左子樹,再訪問右子樹,最后訪問根節點。

1、 先序遍歷

先序遍歷:(1)訪問根節點;(2)采用先序遞歸遍歷左子樹;(3)采用先序遞歸遍歷右子樹;

(注:每個節點的分支都遵循下述的訪問順序,體現“遞歸調用”)

?先序遍歷結果:A?BDFE?CGHI

步驟:

(1)先訪問根節點A,

(2)A分為左右兩個子樹,因為是遞歸調用,所以左子樹也遵循“先根節點-再左-再右”的順序,所以訪問B節點,

(3)然后訪問D節點,

(4)訪問F節點的時候有分支,同樣遵循“先根節點-再左--再右”的順序,

? (5)訪問E節點,此時左邊的大的子樹已經訪問完畢,

? (6)然后遵循最后訪問右子樹的順序,訪問右邊大的子樹,右邊大子樹同樣先訪問根節點C,

? (7)訪問左子樹G,

? (8)因為G的左子樹沒有,所以接下倆訪問G的右子樹H,

? (9)最后訪問C的右子樹I
?

?2、中序遍歷

中序遍歷:(1)采用中序遍歷左子樹;(2)訪問根節點;(3)采用中序遍歷右子樹

?

?中序遍歷結果:DBEF? ??A????GHCI

3、后序遍歷

后序遍歷:(1)采用后序遞歸遍歷左子樹;(2)采用后序遞歸遍歷右子樹;(3)訪問根節點;

?后序遍歷的結果:DEFB??HGIC? ?A

七、君子藏器于身,待時而動


周易·系辭傳下·第五章

? ? ? ?《易》曰「憧憧往來,朋從爾思。」子曰:「天下何思何慮?天下同歸而殊途,一致而百慮。天下何思何慮?日往則月來,月往則日來,日月相推而明生焉。寒往則暑來,暑往則寒來,寒暑相推而歲成焉。往者屈也,來者信也,屈信相感而利生焉。尺蠖之屈,以求信也;龍蛇之蟄,以存身也。精義入神,以致用也;利用安身,以崇德也。過此以往,未之或知也;窮神知化,德之盛也。」
  《易》曰:「困于石,據于蒺藜,入于其宮,不見其妻,兇。」子曰:「非所困而困焉,名必辱。非所據而據焉,身必危。既辱且危,死期將至,妻其可得見耶!」
  《易》曰:「公用射隼于高墉之上,獲之,無不利?!棺釉?#xff1a;「隼者,禽也;弓矢者,器也;射之者,人也。君子藏器于身,待時而動,何不利之有?動而不括,是以出而有獲,語成器而動者也?!?br />   子曰:「小人不恥不仁,不畏不義,不見利不勸,不威不懲。小懲而大誡,此小人之福也。? ? ? ? ? 《易》曰:『履校滅趾,無咎?!淮酥^也。」
  「善不積不足以成名,惡不積不足以滅身。小人以小善為無益而弗為也,以小惡為無傷而弗去也,故惡積而不可掩,罪大而不可解?!兑住吩?#xff1a;『何校滅耳,兇?!弧?br />   子曰:「危者,安其位者也;亡者,保其存者也;亂者,有其治者也。是故君子安而不忘危,存而不忘亡,治而不忘亂,是以身安而國家可保也。《易》曰:『其亡其亡,系于苞桑?!弧?br />   子曰:「德薄而位尊,知小而謀大,力少而任重,鮮不及矣。《易》曰:『鼎折足,覆公餗,其形渥,兇?!谎圆粍倨淙我??!?br />   子曰:「知幾其神乎!君子上交不諂,下交不瀆,其知幾乎?幾者,動之微,吉之先見者也。君子見幾而作,不俟終日。
  《易》曰:『介于石,不終日,貞吉?!唤槿缡?#xff0c;寧用終日?斷可識矣。君子知微知彰,知柔知剛,萬夫之望。」 子曰:「顏氏之子,其殆庶幾乎?有不善未嘗不知,知之未嘗復行也。? ? ? ? ? ? ?《易》曰:『不遠復,無祗悔,元吉?!弧?br />   天地氤氳,萬物化醇。男女構精,萬物化生?!兑住吩?#xff1a;『三人行則損一人,一人行則得其友?!谎灾乱灰?。
  子曰:「君子安其身而后動,易其心而后語,定其交而后求。君子修此三者,故全也。危以動,則民不與也;懼以語,則民不應也;無交而求,則民不與也;莫之與,則傷之者至矣?!兑住吩?#xff1a;『莫益之,或擊之,立心勿恒,兇?!弧?/p>

總結

以上是生活随笔為你收集整理的【数据结构】_树与二叉树的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。