二叉排序樹,又稱為二叉查詢樹。它或者是一棵空樹,或者是具有下列性質的二叉樹。
1.若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值
2.若它的右子樹不空,則右子樹上所有結點的值均小於它的根結點的值
3.它的左、右子樹也分別為二叉排序樹
構造一棵二叉排序樹的目的,其實並不是為了排序,而是為了提高查詢和插入刪除關鍵字的速度。
下面是二叉排序樹查詢操作的php實現:
首先構造資料結構:
class binarytree
}然後實現二叉排序樹:
$b37 = new binarytree(37);
$b35 = new binarytree(35, null, $b37);
$b51 = new binarytree(51);
$b47 = new binarytree(47, $b35, $b51);
$b58 = new binarytree(58, $b47);
$b93 = new binarytree(93);
$b99 = new binarytree(99, $b93);
$b73 = new binarytree(73);
$b88 = new binarytree(88, $b73, $b99);
$binarytree = new binarytree(62, $b58, $b88);
最後實現演算法:
function searchbst($binarytree, $key)
else
if ($binarytree->data == $key) else if ($key < $binarytree->data) else
}$res = searchbst($binarytree, 93);
print_r($res);echo "\n";
print_r($tmp);echo "\n";
自己的一些粗略實現,如有更好的想法,歡迎交流。
二叉排序樹之查詢演算法
1.二叉排序樹的定義與描述 二叉排序樹又稱為二叉查詢樹,它是一種特殊的二叉樹。定義 二叉排序樹是一顆空樹或者是具有一下性質的二叉樹。1 若它的左子樹非空,則左子樹上所有的結點值均小於根結點的值。2 若它的右子樹非空,則右子樹上所有的結點的值均大於 或等於 根結點的值。3 它的左右子樹也分別是二叉排序...
查詢演算法 二叉排序樹
二叉排序樹,又稱二叉查詢樹,是一種對排序和查詢都很有用的特殊二叉樹 定義二叉排序樹或者是一棵空樹,或者具有以下定義 1 若左子樹不為空,左子樹上所有結點值均小於根結點值 2 若右子樹不為空,右子樹上所有結點值均大於根結點值 3 左右子樹也分別為二叉排序樹。遞迴定義。有定義可得性質 中序遍歷二叉樹可得...
查詢 二叉排序樹
順序查詢 順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果知道最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢不成功。順序查詢演算法實現 如下 順序...