加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数据结构课程设计----车牌查询问题

发布时间:2020-12-15 04:50:55 所属栏目:百科 来源:网络整理
导读:汽车牌照的快速查询 ? ?对一组汽车牌照进行排序和查找。 基本要求: ? ? (1)利用排序算法对汽车牌照进行排序; ? ? (2)采用折半查找思想完成查找。 测试数据要求: ? ? 测试的数据不得少于50个,不得有重复的牌照。车牌号中可以是数字和字符的组合,车牌

汽车牌照的快速查询 ? ?对一组汽车牌照进行排序和查找。 基本要求: ? ?

(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;

}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读