二叉樹的建立(C語言)

2021-10-01 03:12:20 字數 1120 閱讀 8967

1.p = q +1 ;(其中p為頂點,q為邊)

2.結點的度:子樹的個數,

樹的度:結點度的最大值

3.連通且無圈

由於所有的樹都可以轉化為二叉樹,下列出二叉樹的性質

1.結點數的最值問題:

(1)第i層的結點數最多為 :2^(i-1)

(2)深度為k的二叉樹中,結點數最多為:2^k - 1

2.葉子結點個數 與 度為2的結點的數量關係:

(1)n0=n2+1;

3.陣列儲存二叉樹:

(1)資料結構:datatype bitree[n] :

(2)其中bitree[0]為空結點,則bitree[ i ]的左子結點為bitree[ 2i ],bitree[ i ]的右子結點為bitree[ 2i +1]。

4.鍊錶儲存二叉樹:

(1)資料結構:

typedef

struct node

bitnode,*bitree;

(2)設結點數為n,邊 = 結點數 - 1(即n-1),指標數 = 結點數 * 2 (即2*n);

則空指標的個數 = n+1。(與線索化有關)

二叉樹建立涉及的知識點

1.關於指標的使用

2.遞迴的理解

傳入指向指標的指標**(函式中傳遞的是形參,函式會新建立乙個指標,與主函式中的指標並未改變)**

main函式

bitnode *t;

printf

("先序遞迴建立\n");

createtree

(&t)

;//這裡傳入指標的位址

呼叫函式

void

createtree

(bitnode *

*t)}

或者寫成下面**

void

createtree

(bitree *t)

}

不傳遞引數,改為返回位址的方式

bitnode*

createtree()

return t;

}

二叉樹的建立(C語言)

首先是樹結點的結構 struct treenode typedef struct treenode tnode typedef struct treenode t pointer 這沒什麼說的。建樹的 void build tree t pointer t else 輸出樹 t pointer pr...

c語言的二叉樹的建立

include include include define m 100 定義最大的節點數 建立二叉樹的型別 typedef struct tnode bintree 定義指標變數 輸入字串返回二叉鍊錶 bintree ceartetree char str else top 指標後移 s top ...

建立二叉樹 後序建立二叉樹

由後序遍歷可知,輸入順序是左結點 右結點 子樹根結點 比如輸入如下樹 ab cde 輸入序列為 e d b c a 思路 使用棧,對左結點和右結點進行壓棧 1.當輸入遇到非 且棧中元素大於等於2,則可以確定乙個小三角樹形,並將這個樹根作為下乙個小三角樹形的乙個子節點 2.當輸入遇到非 但棧中元素小於...