数据结构程设计-航班查询与检索(含代码、流程图、输出结果).docVIP

数据结构程设计-航班查询与检索(含代码、流程图、输出结果).doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构程设计-航班查询与检索(含代码、流程图、输出结果)

算法与数据结构实验报告 航班查询与检索 题目:航班查询与检索 指导老师: 组长: 成员: 一:航班信息的查询与检索 初始化信息 进行排序 主菜单显示 输入查询序号 判断序号是否合法 按航班号查询 按时间查询 按地点查询 按票价查询 输出航班信息 结束 开始 按时间查询: 输入查询时间 Time=1 按抵达时间查询 按起飞时间查询 返回查询信息 开始 是 否 开始 输入票价范围 判断有无符合条件票价票价 输出相应信息 返回查询信息 按票价范围查询 按站点查询: 开始 返回查询信息 输入起点终点及AD AD=1? 按目的站查询 按起点站查询 否 是 二分法查询: 输入航班号 开始 输入航班号对应序列号 High=mid+1 Low=highh Num=F[mid].flight_number Mid=(high+low)/2 NumF[mid]fligt_number Low=mid+1 返回 是 否 二: 算法分析:程序主要采用结构体 链表 顺序表 队列 主要算法:/*航班信息的查询与检索*/ 三:/*航班信息的查询与检索*/ #includeiostream.h #includestring.h #includestdio.h #define N 6 //航班数 //航班信息 typedef struct flight { char flight_number[10]; //航班号 char start_address[10]; //起飞站 char arrived_address[10]; //终点站 char work_date[10]; //班期 char start_time[6]; //起飞时间 char arrived_time[6]; //到达时间 char FlightType[4]; //机型 int fare; //票价 }DataType; struct flight Flight[N]; //-----------按航班号进行基数排序----------- typedef char KeyType; #define D 7 // D为排序码的最大位数 #define R a // R为基数,这里为小于字母a代表的整型值 struct Node; //单链表结点类型 typedef struct Node RadixNode; struct Node { KeyType key[D]; //关键字 DataType info; //数据信息 RadixNode *next; }; typedef RadixNode * RadixList; typedef struct QueueNode { RadixNode *f; //对列的头指针 RadixNode *e; //对列的尾指针 }Queue; Queue queue[R];//用队列表示桶 void radixSort(RadixList * plist, int d, int r) { int i,j,k; RadixNode *p, *head; head=(*plist)-next; for(j=d-1; j=0; j--) //进行d次分配和收集 { p=head; for(i=0; ir; i++) { queue[i].f=NULL; queue[i].e=NULL; //清队列 } while(p!=NULL) { k=p-key[j]; //按排序码的第j个分量进行分配 if(queue[k].f==NULL) queue[k].f=p; // 若第k个堆为空,则当前记录为队头 else (queue[k].e)-next=p; // 否则当前记录链接到第k队的队尾 queue[k].e=p; p=p-next; } i=0; while(queue[i].f==NULL) i++; // 从r个队列中找出第一个非空的队列 p=queue[i].e; head=queue[i].f; //head为收集链表的头指针 for(i++; ir; i++) i

文档评论(0)

yyongrjingd7 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档