- 设计在顺序有序表中实现二分查找的算法。
#include<iostream>
using namespace std;
int main(){
int arr[] = {1,2,3,4,5,6,7,8,9,10};
int low=0,high=9,mid,key;
cin>>key;
while(low<=high){
mid = (low+high)/2;
if(arr[mid]==key)break;
else if(arr[mid]<key)low = mid+1;
else high = mid-1;
}
cout<<"在第"<<mid+1<<"个";
return 0;
}
- 设计判断二叉树是否为二叉排序树的算法。
bool isBst(BiTree t){
if(t==NULL)return true;
else {
if(t->lchild!=NULL&&t->lchild->data>t->data)return false;
else if(t->rchild!=NULL&&t->rchild->data<t->data)return false;
else{
isBst(t->lchild);
isBst(t->rchild);
}
}
}