汽车牌照的快速查询 对一组汽车牌照进行排序和查找。 基本要求:
(1)利用排序算法对汽车牌照进行排序;
(2)采用折半查找思想完成查找。
测试数据要求: 测试的数据不得少于50个,不得有重复的牌照。车牌号中可以是数字和字符的组合,车牌号可以人工输入,也可以自动生成。
#include
#include
#include
#include
typedef char Car[10];
typedef struct
{
Car *elem;
int length;
}linkList;
voID input(linkList &L)
{
printf("请输入待排序车辆的数目:n");
scanf("%d",&L.length);
L.elem=(Car*)malloc(L.length*sizeof(Car));
printf("请依次输入车辆的车牌号:n");
for(int i=0;i scanf("%s",L.elem[i]); } voID BubbleSort(linkList &L) {//对车牌号进行排序 char a[20]; int i,j; int flag=1; for(i=0;i { flag=0; for(j=0;j if(strcmp(L.elem[j],L.elem[j+1])>0) { strcpy(a,L.elem[j]); strcpy(L.elem[j],L.elem[j+1]); strcpy(L.elem[j+1],a); flag=1; } } } voID Binsrch(linkList &L,char *a) {//利用折半查找查找车牌号是否存在 int low,high,mID; int flag=1; low=0; high=L.length-1; while(low<=high&&flag) { mID=(low+high)/2; if(strcmp(a,L.elem[mID])==0) { printf("查找的该车牌号是第%d个。n",mID+1); flag=0; } else if(strcmp(a,L.elem[mID])>0) { low=mID+1; mID=(low+high)/2; } else { high=mID-1; mID=(low+high)/2; } } if(flag) printf("查找的车牌号不存在。n"); } voID Output(linkList &L) { int i; for(i=0;i printf("%sn",L.elem[i]); } int main() { int i; linkList L; char car[20]; while(1) { printf("————————请选择 *** 作——————————n"); printf("——1.输入信息 2.车牌号排序 3. 车牌号查询 0.退出——n"); scanf("%d",&i); switch(i) { case 1: input(L); break; case 2: printf("车牌号的排序结果为:n"); BubbleSort(L); Output(L); break; case 3: printf("输入要查找的车牌号:n"); getchar(); gets(car); Binsrch(L,car); break; case 0: return 0; } } return 0; } 以上是内存溢出为你收集整理的数据结构课程设计----车牌查询问题全部内容,希望文章能够帮你解决数据结构课程设计----车牌查询问题所遇到的程序开发问题。 如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。 欢迎分享,转载请注明来源:内存溢出
评论列表(0条)