数据结构课程设计航班信息的查询与检索

数据结构课程设计航班信息的查询与检索

ID:47518179

大小:211.01 KB

页数:23页

时间:2020-01-12

数据结构课程设计航班信息的查询与检索_第1页
数据结构课程设计航班信息的查询与检索_第2页
数据结构课程设计航班信息的查询与检索_第3页
数据结构课程设计航班信息的查询与检索_第4页
数据结构课程设计航班信息的查询与检索_第5页
资源描述:

《数据结构课程设计航班信息的查询与检索》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录第1章概述2第2章设计要求与分析22.1设计要求22.2设计分析32.2.1定义数据类型32.2.2实现排序的个函数说明4第3章算法实现43.1一趟分配算法43.2一趟收集算法53.3链式基数排序算法53.4二分查找的函数定义6第4章程序代码7第5章运行与测试7第6章实验反思10参考文献11第1章概述排序和查找是在数据信息处理中使用频度极高的操作。为了加快查找的速度,需要先对数据记录按关键字排序。当今乘飞机旅行的人越来越多,人们需要关心了解各类航班的班次、时间、价格及机型等信息。在这个飞机航班数据的信息模型中,航班号是关键字,而且是具有结构特点的一类关键

2、字。因为航班号是字母数字混变的,例如CZ3869,这种记录集合是一个适合与多关键字排序的例子。第2章设计要求与分析2.1设计要求该设计要求对飞机航班信息进行排序和查找.可按航班的航班号、起点站、到达站、起飞时间以及到达时间等信息进行查询。对于本设计,可采用基数排序法对一组具有结构特点的飞机航班号进行排序,利用二分查找法对排好序的航班记录按航班号实现快速查找,按其他词关键字的查找可采用最简单的顺序查找方法进行,因为他们用的较少。每个航班记录包括八项,分别是:航班号、起点站、终点站、班期、起飞时间、到达时间、飞机型号以及票价等,假设航班信息表如下表所示:航班信息

3、表航班号起点站终点站班期起飞时间到达时间机型票价CA1544合肥北京1.2.4.510551240733960MU5341上海广州每日14201615M901280CZ3869重庆深圳2.4.6085510357331010MU3682桂林南京2.3.4.6.720502215M901380HU1836上海北京每日094011207381250CZ3528成都厦门1.3.4.5.715101650CRJ1060MU4594昆明西安1.3.5.6101511403281160SC7425青岛海口1.3.619202120DH41630其中航班号一项的格式为:k

4、0k1k3k4k5k6CZ3869其中k0和k1的输入值是航空公司的别称,用两个大写字母表示,后4位为航班表号,这种航班号关键字可分成两段,即字母和数字。其余七项输入内容因为不涉及本设计的核心,因此除了票价为数值型外,均定义为字符串型即可。2.2设计分析2.2.1定义数据类型根据设计要求,我们知道设计中所用到的数据记录只有航班信息,因此要定义行管的数据类型:Typedefstruct{Charstart[7];Charend[7];Charsche[12];Chartime1[5];Chartime2[5];Charmodel[4];Intprice;}In

5、foType;Typedefstruct{KeyTypekeys[keylen];InfoTypeothers;Intnext;}SLNode;Typedefstruct{SLNodes1[MaxSpace];Intkeylen;Intlength;}SLList;为了进行基数排列,需要定义在分配和手机操作使用到的指针数组:TypedefintArrType_n[10];TypedefintArrType_.c[26];2.2.2实现排序的个函数说明(1)一趟分配函数:VoidDistribute(SLNode*s1,intI,ArrTypef,ArrTyp

6、ee);//本算法是按关键字keys[i]建立RADIX个子集,是同一个子集中记录的keys[i]相同,//f[0..RADIX]和e[0..RADIX]分别指向各自表中的第一个和最后一个记录(2)一趟搜集函数:VoidCollect(SLNode*s1,inti,ArrTypef,ArrTypee);//本算法是按关键字keys[i]从小到大将[0..RADIX]所指的各子表一次连接成一个链表(3)链式基数排序函数:VoidRadixSort(SLList&L);//本算法是按关键字从低位到高位依次对各关键字进行分配和收集,分两端实现(4)二分查找函数:I

7、ntBinSerach(SLListL,KeyTypekey[]);//L为待查找的表,key[]为待查找的关键字,按二分查找的思想实现查找(5)主控函数:Voidmain(){初始化;数据输入;排序处理;接受查找要求及查找关键字;查找处理;输出查找结果;}第3章算法实现3.1一趟分配算法VoidDistribute(SLNode*s1,intI,ArrTypef,ArrTypee){Intj,p;For(j=0;j

8、=s1[p].keys[i]%48;If(!f[j]

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。