⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 顺序结构 有序二分查找.c

📁 数据结构代码(严为民)
💻 C
字号:
//类似数据库的查找

#include<stdio.h>
#define EQ KEY==ST->elem[mid].key
#define LT KEY<ST->elem[mid].key
typedef struct{
	int key;
    char otherkey[20];
}Elem;
typedef struct{
	Elem elem[100];
	int length;
}SSTable;


int Serach_Bin(SSTable *ST,int KEY)
{int low=1,high=ST->length,mid;
while(low<=high){
	mid=(low+high)/2;
	if(EQ)return mid;
	else if(LT)high=mid-1;
	else low=mid+1;
}
return 0;
}

void main()
{SSTable ST;int i,n,KEY;
ST.length=0;

printf("输入字段的条数:");
scanf("%d",&n);
printf("输入字段的关键字和其它信息:\n");
for(i=1;i<=n;i++)
{printf("第%d字段:",i);scanf("%d%s",&(ST.elem[i].key),ST.elem[i].otherkey);
ST.length++;}
printf("输入要查找的关键字:");
scanf("%d",&KEY);
i=Serach_Bin(&ST,KEY);if(i==0)printf("要查找的字段不存在\n");
else{
printf("要查找的字段的序号:");
printf("%d\n",i);
printf("你所要找字段的关键字和其它信息:");
printf("%d %s\n",ST.elem[i].key,ST.elem[i].otherkey);
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -