二叉查詢樹的基礎操作

2021-09-25 03:07:32 字數 722 閱讀 4063

二叉查詢樹:

性質:對於樹中的每個結點x,它的左子樹中所有關鍵字值小於x的關鍵字值,而它的右子樹中所有關鍵字值大於x的關鍵字值。

定義:

//定義乙個searchtree

struct treenode

;//find操作

position find(elementtype x,searchtree t)

//查詢最大值操作

position findmax(searchtree t)

//查詢最小值操作(非遞迴)

position findmin(searchtree t)

//插入

searchtree insert(elementtype x,searchtree t)

//目前為止的功能是如果這個為葉子結點,則建立乙個新的元素存放x的值

}else if(xelement)

t->left=insert(x,t->left); //如果x小於結點的值,則向左邊插入。

else if (x>t->element)

t->right=insert(x,t->right); //如果x大於結點的值,則向右邊插入。

return t;}刪除

searchtree delete(elementtype x,searchtree t)

else

return t;

}

二叉排序樹(二叉查詢樹)的基本操作

二叉排序樹的查詢屬於動態查詢的範疇,根據查詢過程中是否對錶進行修改,可以把查詢分為靜態查詢和動態查詢。動態查詢表的特點是 表結構本身是在查詢過程中動態生成的,即對於給定的key值,若表中存在其關鍵字等於key的記錄,則查詢成功並返回,否則插入關鍵字等於key的記錄。二叉排序樹或者是一顆空樹,或者是具...

二叉查詢樹的刪除操作

對於二叉樹的刪除操作來說,存在三種情況 1.當刪除節點為葉節點的時候,此時將節點置為空 2.當刪除節點為根節點且該根節點只有乙個子樹的時候,此時需要替換掉刪除元素,最後再進行釋放 3.當刪除節點為根節點且根節點存在兩個子樹的時候,此時我們可以選擇替換左子樹的最大元素,或者右子樹的最小元素 c 如下 ...

二叉查詢樹的基本操作

二叉查詢樹 對於樹中的每個節點x,它的左子樹所有關鍵字小於x的關鍵字,而右子樹的所有關鍵字大於x的關鍵字。二叉查詢樹的平均深度是o logn 二叉查詢樹的刪除操作 如果有乙個兒子,調節父節點指標繞過該節點後被刪除。如果有兩個兒子,用右子樹的最小資料代替該節點的資料,並遞迴地刪除那個節點 現在它是空的...