关闭

关闭

关闭

封号提示

内容

首页 数据结构课程设计航班信息的查询与检索试验参考代码[精彩].doc

数据结构课程设计航班信息的查询与检索试验参考代码[精彩].doc

数据结构课程设计航班信息的查询与检索试验参考代码[精彩].doc

上传者: 点电灯泡 2017-10-18 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《数据结构课程设计航班信息的查询与检索试验参考代码[精彩]doc》,可适用于综合领域,主题内容包含数据结构课程设计航班信息的查询与检索试验参考代码精彩数据结构课程设计航班信息的查询与检索实验参考代码#include<stdioh>#include符等。

数据结构课程设计航班信息的查询与检索试验参考代码精彩数据结构课程设计航班信息的查询与检索实验参考代码#include<stdioh>#include<stringh>#defineMaxspace#definekeylen#defineRADIXn#defineRADIXctypedefcharkeytypetypedefstruct{charstart起点charend终点charsche班期chartime起飞时间chartime到达时间charmodel机型intprice票价}infotype航班记录类型typedefstruct{keytypekeyskeylen关键字(航班号)infotypeothersintnext}slnodetypedefstruct{slnodeslMaxspaceintkeynum记录当前关键字字符个数intlength当前表长}sllist静态链表类型typedefintarrtypenRADIXn十进制数字指针数组typedefintarrtypecRADIXc个字母指针数组*链式基数排序*voidDistribute(slnode*sl,inti,arrtypenf,arrtypene){一趟数字字符分配函数intj,pfor(j=j<RADIXnj){各子表置为空表fj=ej=}for(p=slnextpp=slpnext){j=slpkeysi将数字字符转化成相对应的数值数字if(!fj)fj=pelseslejnext=pej=p将P指向的结点插入到第J个子表中}}voidcollect(slnode*sl,inti,arrtypenf,arrtypene){一趟数字字符的收集函数intj,tfor(j=!fjj)找出第一非空子表slnext=fj指向第一个非空子表中的一个结点t=ejwhile(j<RADIXn){for(j=jj<RADIXn!fjj)找出下一个非空子表if(fj){sltnext=fj链接两个非空子表t=ej}}sltnext=t指向最后一个非空子表中的最后一个结点}voidDistributec(slnode*sl,inti,arrtypecf,arrtypece){一趟字母字符分配函数intj,pfor(j=j<RADIXcj){fj=ej=}for(p=slnextpp=slpnext){j=slpkeysiif(!fj)fj=pelseslejnext=pej=p}}voidcollectc(slnode*sl,inti,arrtypecf,arrtypece){一趟字母字符收集函数intj,tfor(j=!fjj)slnext=fjt=ejwhile(j<RADIXc){for(j=jj<RADIXc!fjj)if(fj){sltnext=fjt=ej}}sltnext=}voidRadixsort(sllistl)链式基数排序{intiarrtypenfn,enarrtypecfc,ecfor(i=i<llengthi)lslinext=ilslllengthnext=for(i=lkeynumi>=i){Distribute(lsl,i,fn,en)collect(lsl,i,fn,en)}for(i=i>=i){Distributec(lsl,i,fc,ec)collectc(lsl,i,fc,ec)}}voidArrange(sllistl){按指针链重新整理静态链表intp,q,islnodetempp=lslnextfor(i=i<llengthi){while(p<i)p=lslpnextq=lslpnextif(p!=i){temp=lslplslp=lslilsli=templslinext=p}p=q}}*查找算法实现*intBinsearch(sllistl,keytypekey){二分查找函数intlow,high,midlow=high=llengthwhile(low<=high){mid=(lowhigh)if(strcmp(key,lslmidkeys)==)returnmidelseif(strcmp(key,lslmidkeys)<)high=midelselow=mid}return}voidSeqsearch(sllistl,keytypekey,inti){顺序查找函数intj,k,m=printf("*航班号起点站终点站航班期起飞时间到达时间机型票价*n")for(j=j<=llengthj){switch(i){case:k=strcmp(key,lsljothersstart)breakcase:k=strcmp(key,lsljothersend)breakcase:k=strcmp(key,lsljotherstime)breakcase:k=strcmp(key,lsljotherstime)break}if(k==){m=printf("s,s,s,s,s,s,s,d*n",lsljkeys,lsljothersstart,lsljothersend,lsljotherssche,lsljotherstime,lsljotherstime,lsljothersmodel,lsljothersprice)}}if(m==)printf("无此航班信息可能是输入错误~n")}voidsearchcon(sllistl){查询检索菜单控制程序keytypekeykeyleninti=,kwhile(i>=i<=){printf("********************n")printf("*航班信息查询系统*n")printf("********************n")printf("*航班号*n")printf("*起点站*n")printf("*终点站*n")printf("*起飞时间*n")printf("*到达时间*n")printf("*退出系统*n")printf("********************n")printf("请选择():")scanf("d",i)printf("n")switch(i){case:printf("输入要查询的航班号:")scanf("s",key)k=Binsearch(l,key)if(k==)printf("*无此航班信息可能是输入错误~*n")else{printf("*航班号起点站终点站航班期起飞时间到达时间机型票价*n")printf("*s,s,s,s,s,s,s,d*n",lslkkeys,lslkothersstart,lslkothersend,lslkotherssche,lslkotherstime,lslkotherstime,lslkothersmodel,lslkothersprice)}breakcase:printf("输入要查询的航班起点站名:")scanf("s",key)Seqsearch(l,key,i)breakcase:printf("输入要查询的航班终点站名:")scanf("s",key)Seqsearch(l,key,i)breakcase:printf("输入要查询的航班起飞时间:")scanf("s",key)Seqsearch(l,key,i)breakcase:printf("输入要查询的航班到达时间:")scanf("s",key)Seqsearch(l,key,i)breakcase:printf("再见~n")}}}voidInputdata(sllistl){输入航班记录函数inti=llengthcharyn='y'while(yn=='y'||yn=='Y'){printf("航班号起点站终点站航班期起飞时间到达时间机型票价n")scanf("sssssssd",lslikeys,lsliothersstart,lsliothersend,lsliotherssche,lsliotherstime,lsliotherstime,lsliothersmodel,lsliothersprice)igetchar()Radixsort(l)Arrange(l)printf("继续输入吗yn:")scanf("c",yn)}llength=i}voidmain(){sllistllkeynum=初始化及输入数据llength=Inputdata(l)输入航班记录searchcon(l)调用查询函数return}

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/9
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部