数据结构多关键字排序课设报告.docxVIP

  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文档。上传文档
查看更多
数据结构课设报告 目录 一. 目 ?????????????? 2 二.需求分析 ?????????????? 2 程序设计问题描述 ????????????? 2 基本要求 ???????????????? 2 流程图 ???????????????? 2 三. ??????????????? 3 数据结构定义 ??????????????? 4 主要算法设计 ?????????????? 5 函数调用关系图 ?????????????? 8 程序主要流程 ?????????????? 8 四. 分析 ??????????????? 13 五.用 手册 ??????????????? 15 六. 果 ??????????????? 19 七.源代 ( 注 )???????????? 21 八.参考文献???????????????? 26 第1页共26页 数据结构课设报告 一.设计题目 多关键字排序 二.需求分析 1. 程序设计问题描述 多关键字的排序有其一定的实用范围。例如 : 在进行高考分数处理时,除了需对总分 进行排序外, 不同的专业对单科分数的要求不同, 因此尚需在总分相同的情况下, 按用户提出的单科分数的次序要求排出考生录取的次序。 基本要求 假设待排序的记录数不超过 10000,表中记录的关键字数不超过 5,各个关键字的范围均为 0 至 100。按用户给定的进行排序的关键字的优先关系,输出排序结果。 (2) 约定按 LSD法进行多关键字的排序。在对各个关键字进行排序时采用两种策略 : 其 一是利用稳定的内部排序法,其二是利用 分配 和 收集 的方法。并综合比较这两种策略。 3)测试数据由随机数生成器产生。 流程图 开始 输出菜单 输入记录数 选择排序方法 输入不是 1 或 2,重新 输入选择排序方法 判断 1 2 内部排序 基数排序 第2页共26页 数据结构课设报告 显示排序结果 输入结束或继续执行 判断输入 非零值 0 继续执行 退出 结束 三.详细设计 本程序是对语文,数学,英语,体育,综合这 5 门成绩按照此顺序进行优先排序。各 科分数为 0~ 100。 由于本实验约定按 LSD进行多关键字的排序。 在对个关键字进行排序时采用两种策略: 其一是利用稳定的内部排序法,其二是利用“分配”和“收集”的方法。所以在一个程序里 实现了这两种排序方法。 第一种排序方法由于要使用稳定的排序方法,故参考书上的几种排序方法后,选用了 冒泡排序和静态链表存储方式, 每一趟排序后,找出最高分 。第二种排序方法利用 “分配” 与“收集”的基数排序算法,用静态链表存储分数,在一趟排序中,将结点分配到相应的链 第3页共26页 数据结构课设报告 队列中去,再按从高到低链接起来。 数据结构设计 1)稳定的内部排序法结构体定义 typedef struct node //定义结构体 { int key[5]; //数据域 struct node *next; // 指针域 }*Score,Lnode; 基本操作 Score RandData(Score L,int n) 初始条件: L 为创建的静态链表, 代表了一个学生成绩的记录, n 为生成的随机数个数。 操作结果:随机生成 n 个数据并保存到链表 L 中,返回链表头指针。 Score BubbleSort(Score L) 初始条件: L 为创建的静态链表 操作结果:对链表进行冒泡降序排序,返回指针 L 。 void PrintScore(Score L) 初始条件: L 为创建的静态链表。 操作结果:在屏幕上显示链表。 2)“分配”与“收集”的基数排序结构体定义 typedef struct node //定义结构体 { int key[5]; //数据域 struct node *next; // 指针域 }*Score,Lnode; 基本操作 Score RadixSort(Score L) 初始条件: L 为创建的静态链表,代表了一条学生成绩的记录。 第4页共26页 数据结构课设报告 操作结果:对链表 L 的第 n 个关键字进行基数排序。 void PrintScore(Score L) 初始条件: L 为创建的静态链表。 操作结果:在屏幕上显示链表。 主要算法设计 1)稳定的内部排序 Score BubbleSort(Score L) //对链表进行冒泡降序排序,返回指针 L { Score p,q,s,t,N; int n; t=(Score)malloc(sizeof(node)); N=(Score)malloc(sizeof(node)); N-next=L-next; //把 N 指向链表 L

文档评论(0)

138****5510 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档