树的引入—二分查找
在静态查找中
首先想到顺序查找
然鹅
传说中的二分查找是更为高效的
声明:
typedef int ElementType;
typedef struct LNode *List;
struct LNode{
ElementType d[MaxSize];
int Length;
};
顺序查找:
int SequentialSearch(List Tb1,ElementType K){
int i;
Tb1->d[0] = K;//哨兵
for(i = Tb1->Length; Tb1->d[i] != K; i--);
return i;
}
二分查找:
int BinarySearch(List Tb1,ElementType K) {
int left,right,mid;
left = 1;
right = Tb1->Length;
while(left <= right){
mid = (left + right)/2;
if(K < Tb1->d[mid]) right = mid -1;
else if(K > Tb1->d[mid]) right = mid + 1;
else return mid;
}
return -1;
}
而树的引入则是模拟二分查找的实现
与此同时
便利了二分无法实现的动态查找
期待一下神奇的树结构~