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.當輸入遇到非 但棧中元素小於...