二叉樹的乙個重要應用是它們在查詢中的使用。
二叉查詢樹的性質:對於樹中的每個節點x,它的左子樹中所有項的值小於x中的項,而它的右子樹中所有項的值大於x中的項。這意味著該樹所有的元素可以用某種一致的方式排序。
二叉查詢樹的平均深度是o(logn)。二叉查詢樹要求所有的項都能夠排序。樹中的兩項總可以使用comparable介面中的compareto方法比較。
adt的宣告:
struct treenode;
typedef struct treenode *position;
typedef struct treenode *searchtree;
searchtree makeempty(searchtree t);
position find(elementtype x, searchtree t);
position findmax(searchtree t);
position findmin(searchtree t);
searchtree insert(elementtype x, searchtree t);
searchtree delete(elementtype x, searchtree t);
elementtype retrieve(position p);
struct treenode;
searchtree makeempty(searchtree t)
return null;
}
position find(elementtype x, searchtree t)
position findmin(searchtree t)
position findmax(searchtree t)
searchtree insert(elementtype x, searchtree t)
else if(x < t->element)
t->left = insert(x, t->left);
else if(x > t->element)
t->right = insert(x, t->right);
// else x is in the tree already, we'll do nothing!
return t;
}
searchtree delete(elementtype x, searchtree t)
else
return t;
}
JAVA之查詢二叉樹ADT
查詢二叉樹adt 性質 對於樹中每個節點x,它的左子樹所有項的值小於x中的項而它的右子樹所有項的值大於x中的項 查詢二叉樹adt 性質 對於樹中每個節點x,它的左子樹所有項的值小於x中的項 而它的右子樹所有項的值大於x中的項 public class binarysearchtree public ...
查詢 二叉查詢樹
原始碼 目錄 順序查詢 二分查詢 插值查詢 斐波那契查詢 分塊查詢 雜湊查詢 二叉樹查詢 紅黑樹查詢 二叉查詢樹又稱二叉排序樹又稱二叉搜尋樹,如不為空則有以下性質 1.若任意節點的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值 2.若任意節點的右子樹不空,則右子樹上所有結點的值均大於它的根結...
樹(樹,二叉樹,二叉查詢樹)
1.定義 n n 0 個結點構成的有限集合。當n 0時,稱為空樹 2.對於任一棵非空樹 n 0 它具備以下性質 1 樹中有乙個稱為 根 root 的特殊結點,用 r 表示 2 其餘結點可分為m m 0 個互不相交的有限集t1,t2,其中每個集合本身又是一棵樹,稱為原來樹的子樹。3.樹的一些性質 1 ...