二叉查詢樹C語言實現

2021-06-22 13:48:58 字數 1058 閱讀 2097

二叉查詢樹c語言實現

1.      二叉查詢樹的定義:

左子樹不為空的時候,左子樹的結點值小於根節點,右子樹不為空時,右子樹的結點值大於根節點,左右子樹分別為二叉查詢樹

2.      二叉查詢樹的最左邊的結點即為最小值,要查詢最小值,只需遍歷左子樹的結點直到為空為止,同理,最右邊的結點結尾最大值,要查詢最大值,只需遍歷右子樹的結點直到為空為止。二叉查詢樹的插入查詢和刪除都是通過遞迴的方式來實現的,刪除乙個結點的時候,先找到這個結點s,然後並不是真正的刪除這個結點s,而是在其右子樹找到後繼結點,將後繼結點的值付給s,然後刪除這個後繼結點即可。

3.      二叉查詢樹的c實現:

# include # include using namespace std;

struct treenode

};treenode *insert(treenode *root,int val) //插入元素

if(valval)

root->left=insert(root->left,val);

if(val>root->val)

root->right=insert(root->right,val);

return root;

}treenode *findmin(treenode *root)

bool find(treenode *root,int val) //查詢元素,若存在返回1,不存在返回0

treenode *delnum(treenode *root,int val)

else //待刪除結點只有乙個或者沒有孩子 }

return root;

}int main() //測試**

{ treenode *root=null;

root=insert(root,3);

root=insert(root,2);

root=insert(root,4);

root=insert(root,1);

cout<

二叉查詢樹 C語言實現

二叉查詢樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉查詢樹。在使用遞迴的時候,假如函式有返回值,記得接收返回值,並且保證函式在每個板塊結束後都有return,以防出錯。具體見find ins...

二叉查詢樹 C語言實現

構造一顆二叉查詢樹,實現樹的插入 刪除等基本操作 include includetypedef struct node node,pnode int array 100 按序儲存遍歷後的元素 int k 0 陣列array長度 初始化一顆二叉排序樹 pnode init 插入結點 void inse...

二叉查詢樹(BST)及其C語言實現

對任何節點x,其左子樹中的關鍵字最大不超過key x 右子樹中的關鍵字最小不小於key x 二叉查詢樹這種資料結構,它支援多種動態集合操作,search,minimum,maximum,predecessor 前驅 successor 後繼 insert以及delete。在二叉查詢樹上執行的基本操作...