二叉排序樹BST與堆的區別

2021-08-23 12:40:45 字數 548 閱讀 4110

原文出處:

在二叉排序樹中,每個結點的值均大於其左子樹上所有結點的值,小於其右子樹上所有結點的值,對二叉排序樹進行中序遍歷得到乙個有序序列。所以,二叉排序樹是結點之間滿足一定次序關係的二叉樹。堆是乙個完全二叉樹,並且每個結點的值都大於或等於其左右孩子結點的值(這裡的討論以大根堆為例),所以,堆是結點之間滿足一定次序關係的完全二叉樹。

具有n個結點的二叉排序樹,其深度取決於給定集合的初始排列順序,最好情況下其深度為log n,最壞情況下其深度為n;

具有n個結點的堆,其深度即為堆所對應的完全二叉樹的深度log n 。

在二叉排序樹中,最小值結點是最左下結點,其左指標為空;最大值結點是最右下結點,其右指標為空。在大根堆中,最小值結點位於某個葉子結點,而最大值結點是大根堆的堆頂(即根結點,陣列的首元素)。

二叉排序樹是為了實現動態查詢而設計的資料結構,它是面向查詢操作的,在二叉排序樹中查詢乙個結點的平均時間複雜度是o(log n);

堆是為了實現排序而設計的一種資料結構,它不是面向查詢操作的,因而在堆中查詢乙個結點需要進行遍歷,其平均時間複雜度是o(n)。

二叉排序樹BST

二叉排序樹 binary sort tree 又稱二叉查詢樹 binary search tree 亦稱二叉搜尋樹。二叉排序樹的性質 左子樹上所有結點的值均小於或等於它的根結點的值 右子樹上所有結點的值均大於或等於它的根結點的值 左 右子樹也分別為二叉排序樹 如圖是乙個bst。有了這種性質,bst的...

二叉排序樹 BST

二叉排序樹,又叫二叉查詢樹,它或者是一棵空樹 或者是具有以下性質的二叉樹 1.若它的左子樹不空,則左子樹上所有節點的值均小於它的根節點的值 2.若它的右子樹不空,則右子樹上所有節點的值均大於它的根節點的值 3.它的左右子樹也分別為二叉排序樹。1.1 排序二叉樹之插入操作 已知乙個關鍵字值為key的結...

BST(二叉排序樹)

二叉查詢樹 binary search tree 又 二叉搜尋樹,二叉排序樹 它或者是一棵空樹,或者是具有下列性質的二叉樹 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 若它的右子樹不空,則右子樹上所有結點的值均大於它的根結點的值 它的左 右子樹也分別為二叉排序樹。查詢二叉搜尋樹 遞...