樹 二叉樹第一課

2021-10-24 23:40:55 字數 1636 閱讀 9460

性質一:

非空樹的結點總數等於樹中所有結點的度之和加一。

性質二:

度為k的非空樹的第i層最多有k^i(i-1)個結點。

性質三:

深度為h的k二叉樹最多有(k^h-1)/(k-1)個結點

性質四:

具有n個結點的k叉樹的最小深度為log(n(k-1)+1)。

性質一:

具有n個結點的非空二叉樹僅有n-1個分支

性質二:

非空二叉樹的第i層最多有2^(i-1)個結點;1,2,4,8,16 …………

性質三:

深度為h的非空二叉樹最多有2^h-1個結點

性質四:

在任意非空二叉樹中,若葉結點的數目為n0,度為2的結點數目為n2,則n0=n2+1的關係成立。

性質五:

具有n(n>0)個結點的完全二叉樹的深度h=(log n)+1;

1,定長連線點的多重鍊錶表示法

這種儲存方法取樹的度數作為每個鏈結點的指標域數目。但由於數中多數結點的度數可能小於數的度數,因而這種方法會導致許多鏈結點的指標域為空造成空間的浪費。

typedef

struct node

2,不定長鏈結點的多重鍊錶表示法

這種方法是每個結點都取自己的度數作為指標域的數目。這種方法較第一種儲存開銷小,但會給某些操作帶來不方便。

#define maxtree  100

//定義結點的度的最大可能值

typedef

struct node

3,三重鍊錶表示法(最常用)

這種儲存方法是對數的每個結點除了資料域外都設定3個指標域,其中第1個指向第乙個孩子結點(最左邊的)的位址。第2個指向該節點的雙親結點所在鏈結點的位址。第3個指向該結點右邊第乙個兄弟結點所在鏈結點的位址。如果不存在孩子,雙親或兄弟結點,則相應的指標域存放null,

typedef

struct node

滿二叉樹:

葉結點都集中在二叉樹的最下面一層,這樣的二叉樹就是滿二叉樹。

完全二叉樹:

若二叉樹中最多只有最下面兩層結點的多可以小於二,並且最下面的結點(葉結點)都依次排列在該層最左邊的位置上,這樣的二叉樹稱為完全二叉樹。

一,數轉化成二叉樹

1,在所有相鄰的兄第結點之間分別加一條連線

2,對每個分支結點,除了其最左孩子外,刪去該節點與其他孩子結點的連線。

3,以根結點為軸,順時針旋轉45°。

二,樹林轉換成二叉樹

1,分別將樹林中的每棵樹轉換為二叉樹。

2,從最後那顆二叉樹開始,依次吧後一顆二叉樹的根結點作為前一顆二叉樹根結點的右孩子。

三,二叉樹還原為一般數

1,若某結點是其雙親結點的左孩子,則將該結點的右孩子以及當且進當連續的沿著此右孩子的右子樹方向不斷的搜尋到的所有右孩子,都分別與該結點的雙親結點用虛線連線。

2,刪去原二叉樹中所有雙親結點與其右孩子的連線。

3,將圖形規整化,使各節點按層次排列,並且虛線改為實線。

已知二叉樹前序中序,構造一課二叉樹

include includeusing namespace std struct btnode typedef struct btnode btree int index 1 int pre int in 由前序與中序序列,一樣可以構造出一棵二叉樹的。引數解釋 btree t 因為要對二叉樹進行寫...

樹 二叉樹 滿二叉樹 完全二叉樹 完滿二叉樹

目錄名稱作用根 樹的頂端結點 孩子當遠離根 root 的時候,直接連線到另外乙個結點的結點被稱之為孩子 child 雙親相應地,另外乙個結點稱為孩子 child 的雙親 parent 兄弟具有同乙個雙親 parent 的孩子 child 之間互稱為兄弟 sibling 祖先結點的祖先 ancesto...

開學第一課

因為是開學第一課,而且這是我的第一篇個人部落格,更何況還是技術部落格,所以我會認真對待,不過畢竟第一次,所以難免各方面會有不足,所以有任何的意見或建議都可以提出來以供本人提高。下面廢話少說,進入正題。使用quartus,新建乙個專案,建立乙個bdf檔案,雙擊bdf空白處,新增元件符號。找到 7413...