查找
int seqserch(int r[],int n, int k){
r[0] = k; i = n;
while(r[i] != k){
i--;
}
return i;
}
int binSearch(int r[],int n ,int k){
low = 1; high = n;
while(low<=high){
mid = (low + high)/2;
if(k<r[mid]){
high = mid -1;
}else if(k>r[mid]){
low = mid +1;
}else{
return mid ;
}
}
return 0;
}
int binsearch(int r[],int low,int high,int k){
if(low>high) return 0;
else{
mid = (low +high)/2;
if(k<r[mid])
return binsearch(r,low,mid-1,k);
else if(k>r[mid])
return binsearch(r,mid+1,high,k);
else return mid ;
}
}
二叉排序树的插入算法
void bisortTree::InsertBST(Binode<int>*s){
if(root==null) root = s;
else if(s->date<root->data)
InsertBST(root->lchild,s);
else InsertBST(root->rchild,s);
}
二叉排序树的构造算法
BisortTree::BiSortTree(int r[],int n){
for(i=0,i<n;i++){
s=new BiNode<int>;
s->data=r[i];
s->lchild=s->rchild=NULL;
InsertBST(root,s);
}
}
BiNode *BiSortTree::SearchBST(BiNode<int> *root,int k){
if(root==NULL)
return NULL;
else if(root->data==k)
return root;
else if(k<root->data)
return SearchBST(root->lchild,k);
else return SearchBST(root->rchild,k)
}