資料結構專題 二叉查詢樹的基本操作

2021-10-07 12:44:41 字數 1328 閱讀 6086

二叉查詢樹(binary search tree,bst)是一種特殊的二叉樹,又稱二叉搜尋樹,二叉排列樹

他的遞迴定義是

要麼二叉查詢樹是一顆空樹

要麼二叉查詢樹是由根結點、左子樹、右子樹構成,其中左子樹和右子樹都是二叉查詢樹,且左子樹上所有結點的資料均小於或等於根結點,右子樹上的所有結點的資料均大於根結點 ,如下圖所示

二叉查詢樹的操作演算法是由一般查詢樹改造而來的。

查詢操作

/**

* 查詢

* @param root

* @param x

*/public

void

search

(binarynode root,

int x)

if(root.data==x)

else

if(root.data>x)

else

}

插入操作

/**

* 插入

* @param root

* @param x

*/public

void

insert

(binarynode root ,

int x)

else

if(root.data<=x&&root.rchild!=null)

else

if(root.data>x)

else

}

刪除操作,為了保證刪除後還是乙個二叉查詢樹,我們採取的方法是找到要刪除的結點後,用比該結點小的最大結點或者用比該結點大的最小結點來替換該結點,這種方式不會破環二叉查詢樹的結構

public

void

delete

(binarynode root,

int x)

if(root.data==x)

root.data=node.data;

node.pnode.rchild=null;

}else

if(root.lchild==null&&root.rchild==null)

else

}else

if(root.lchild==null&&root.rchild!=null)

else

}else

else}}

else

if(root.data>x)

else

}

(資料結構)二叉查詢樹

樹,是一種資料結構。它是由n個有限節點組成乙個具有層次關係的集合。特點 樹的基本術語 節點的度 節點擁有的子樹的數目。葉子 度為零的節點。分支節點 度不為零的節點。樹的度 樹中節點的最大的度。層次 根節點的層次為1,其餘節點的層次等於該節點的雙親的層次加1。樹的高度 樹中節點的最大層次。無序樹 如果...

資料結構 二叉查詢樹

使二叉樹成為二叉查詢樹的性質是,對於樹中的每個節點x,它的左子樹中所有關鍵字值小於x的關鍵字值,而它的右子樹中所有關鍵字值大於x的關鍵字值。這意味著,該樹所有的元素以某種統一的方式排序。二叉查詢樹是一棵特殊的二叉樹,二叉查詢樹中節點的結構與二叉樹種節點的結構相同,關鍵在於可以在二叉查詢樹上可以執行的...

資料結構 樹 二叉查詢樹

wiki 首先是名稱 二叉查詢樹英文叫binary search tree,這個在很多演算法題目中很常見所以要記住,特別是英文題目中。也叫做二叉排序樹,二叉搜尋樹等等。具體的定義比較官方,用自己的話說,首先它肯定是二叉樹,其次,當前節點的左子葉元素值比當前節點小,右子葉元素值比當前節點大,所以節點均...