typedef int ElemType;
typedef struct {
ElemType *elem;
int length;
}SSTable;
typedef int KeyType;
//建立查找表
void create(SSTable &ST)
{
ST.elem=(ElemType*)malloc(11*sizeof(ElemType));
ST.length=0;
for(int i=1;i<=10;i++)
{
printf("请输入第%d个元素值:",i);
scanf("%d",&ST.elem[i]);
ST.length++;
printf("\n");
}
}
//二分查找
int search_Bin(SSTable ST, KeyType key )
{
int low=1,high=ST.length;
int mid;
while(low<=high)
{
mid=(low+high)/2;
if(key == ST.elem[mid])
return mid;
else if(key > ST.elem[mid])
low=mid+1;
else
high=mid-1;
}
return 0;
}
main()
{
SSTable ST;
create(ST);
printf("查找关键字21的结果为:%d\n", search_Bin(ST, 21));
free(ST.elem);
return 0;
}