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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

6.2二叉树及二叉树存储结构

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 6.2二叉树及二叉树存储结构 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

二叉樹(Binary Tree):每個結點至多只有兩顆子樹,二叉樹的子樹有左右之分,不能任意顛倒。


下面給出二叉樹的5種基本形態(如下圖)



二叉樹的性質:

1.二叉樹第i層上至多有2^(i-1)個結點(i>=1)。

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

3.對任何一顆二叉樹T,如果其終端結點數為n0,度為2的結點數為n2,則n0=n2+1。

怎么證明?如下圖:


這個就比較困難了,需要推導獲得
首先我們再假設度為1的結點數為n1,則二叉樹T的結點總數n=n0+n1+n2
其次我們發現連接數總是等于總結點數n-1,并且等于n1+2*n2
所以n-1=n1+2*n2
所以n0+n1+n2-1=n1+n2+n2
最后n0=n2+1


4.具有n個結點的完全二叉樹的深度為[log2n]+1([]不是中括號,是取下線的意思如,如果是2.3,則取下線后就2)

證明的話就是性質2求k,指數函數和對數函數互為反函數


5.對一顆有n個結點的完全二叉樹(其深度為[log2n]+1)的結點按層序編號,對任意一結點i(i<=i<=n)有以下性質

如果i=1,則結點i是二叉樹的根,無雙親;如果i>1,則其雙親是結點[i/2](取下線)。

如果2i>n,則結點i無做做孩子(結點i為葉子結點);否則其左孩子是結點2i。

如果2i+1>n,則結點i無右孩子;否則其右孩子是結點2i+1。


一顆深度為k且有2^k-1個結點的二叉樹稱為滿二叉樹。

深度為k的,有那個結點的二叉樹,當且僅當其每一個結點都與深度為k的滿二叉樹中編號從1至n的結點一一對應時,稱為完全二叉樹。

如下圖所示:



下面是二叉樹的存儲:

代碼如下:

typedef int ElemType; typedef struct BiTNode {ElemType data;struct BiTNode *lchild, *rchid; }BiTNode,*BiTree;
圖就是這樣的:



新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的6.2二叉树及二叉树存储结构的全部內容,希望文章能夠幫你解決所遇到的問題。

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