資料結構 二叉樹的實現

2021-10-05 13:41:05 字數 1603 閱讀 1611

typedef

char datatype;

typedef

struct bnode

node;

typedef

struct btree

btree;

void

creatbinarytree

(btree* bt)

// 通過前序遍歷的陣列"abd##e#h##cf##g##"構建二叉樹

node*

creatbinarytree

(datatype arr,

int* idx)

node* root =

(node*

)malloc

(sizeof

(node));

root->_data = arr[

*idx];(

*idx)++;

root->_left =

creatbinarytree

(arr, idx)

; root->_right =

creatbinarytree

(arr, idx)

;return root;

}//二叉樹前序遍歷

void

preorder

(node* root)

}//二叉樹中序遍歷

void

inorder

(node* root)

}//二叉樹後序遍歷

void

postorder

(node* root)

}//二叉樹節點個數

intbtreesize

(node* root)

//二叉樹深度

intbtreeheight

(node* root)

//二叉樹葉子節點個數

intbtreeleafsize

(node* root)

//二叉樹第k層節點個數

intbtreesize

(node* root,

int k)

//二叉數查詢值為ch的節點

node*

btreefind

(node* root,

char ch)

else

return

null;}

//二叉樹的銷毀

void

btreedestroy

(node*

* root)

}

層序遍歷

void

binarytreelevelorder

(btnode* root)

printf

("\n");

}

判斷二叉樹是否是完全二叉樹

int

binarytreecomplete

(btnode* root)

else

break;}

while

(queueempty

(&q)!=1

)return1;

}

資料結構 二叉樹的實現

描述 構造乙個二叉樹類,實現建立二叉樹和對二叉樹進行前序 中序 後序遍歷 輸入 擴充套件的前序序列.在一棵樹處理結束後,根據響應判斷是否處理下一棵樹 輸出 前序 中序 後序 樣例輸入 ab c yabc n樣例輸出 abcbac bcaabc cbacba include using namespa...

資料結構 二叉樹 反轉二叉樹

include using namespace std define maxsize 1000 struct binary tree node class queue queue queue void queue push binary tree node btn binary tree node ...

《資料結構》 二叉樹

二叉樹 是 n個結點的有限集,它或為空集,或由乙個根結點及兩棵互不相交的 分別稱為該根的左子樹和右子樹的二叉樹組成。二叉樹不是樹的特殊情況,這是兩種不同的資料結構 它與無序樹和度為 2的有序樹不同。二叉樹的性質 1 二叉樹第 i層上的結點數最多為 2 i 1 2 深度為 k的二叉樹至多有 2 k 1...