二叉排序樹查詢演算法之php實現

2021-08-28 01:17:40 字數 988 閱讀 5343

二叉排序樹,又稱為二叉查詢樹。它或者是一棵空樹,或者是具有下列性質的二叉樹。

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 左右子樹也分別為二叉排序樹。遞迴定義。有定義可得性質 中序遍歷二叉樹可得...

查詢 二叉排序樹

順序查詢 順序查詢又叫線性查詢,是最基本的查詢技術,它的查詢過程是 從表中第乙個記錄開始,逐個進行記錄的關鍵字和給定值比較,若某個記錄的關鍵字和給定值相等,則查詢成功,找到所查的記錄 如果知道最後乙個記錄,其關鍵字和給定值比較都不等時,則表中沒有所查的記錄,查詢不成功。順序查詢演算法實現 如下 順序...