



版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、百度文库- 让每个人平等地提升自我数据结构课程设计题目一:实现两个链表的合并题目二:可变长顺序表设计班级:计科 1202 班姓名:学期: 2013-2014 学年第二学期11百度文库- 让每个人平等地提升自我题目 1:实现两个链表的合并基本要求:( 1)建立两个链表 A 和 B,链表元素个数分别为 m 和 n 个。( 2)假设元素分别为 (x1,x2,xm),和 (y1,y2, yn)。把它们合并成一个线性表C:当 m>=n 时, C=x1,y1,x2,y2,xn,yn,xm当 n>m 时, C=y1,x1,y2,x2,ym,xm, ,yn( 3)输出线性表 C:( 4) 用直接插
2、入排序法对 C 进行升序排序,生成链表 D,并输出链表 D。测试数据:( 1) A 表( 30,41,15, 12,56,80)B 表( 23, 56,78,23,12,33, 79,90,55)( 2) A 表( 30,41,15, 12,56,80,23,12, 34)B 表( 23, 56,78,23,12)算法思想 :首先我们需要建立两个链表 A,B ,A 链表的元素个数为 m; B 链表的元素个数为 n;在将 A,B 链表进行合并,根据 m 和 n 的大小关系决定链表 C 的元素顺序(当 m>=n 时,应该先插入 A 表中的数据元素,在偶数位插入 A 表中的数据元素,在奇数位插
3、入 B 表中的数据元素,最后在插入 A 表中剩余的数据元素;当 m<n 时,应该先插入 B 表中的数据元素,在偶数位插入 B 表中的数据元素,在奇数位插入 A 表中的数据元素,最后在插入 B 表中剩余的数据元素),再将 C 经行直接插入排序得到一个新的链表D;最后输出 ABCD 的相关信息。模块划分 :(1) 结构体 struct Node 的创建。(2) struct Node *create()链表的创建。(3) void print(struct Node *head)功能是对链表进行输出。(4) struct Node * inter_link(struct Node * cha
4、in1, int a, struct Node * chain 2, int b)算法的功能是实现两个链表的交叉合并, 并且可以根据两链表的长短将行不通的插入。(5) void InsertSort(struct Node *p,int m)算法的功能是对一合并好的链表进行升序插入排序。(6) main() 函数主要是对算法进行测试。22百度文库- 让每个人平等地提升自我数据结构:数据结构定义如下:struct Nodelong int number;struct Node *next;源程序:#include<>#include<>#include<>#i
5、nclude<>#define L sizeof(struct Node)struct Node33百度文库- 让每个人平等地提升自我44百度文库- 让每个人平等地提升自我始化空表Datatype InitList_Sq(SqList &L)= (Datatype *)malloc(LIST_INIT_SIZE *sizeof(Datatype);if(!exit(-1);立顺序表 LDatatype CreatList_Sq(SqList &L,int n)int i;Datatype e;55百度文库- 让每个人平等地提升自我printf("输入顺序表
6、的长度 :");scanf("%d",&n);= n;if > LIST_INIT_SIZE)= (Datatype *) realloc,*sizeof(Datatype); printf(" 输入数据 :");for(i = 0;i <= ;i+)scanf("%d",&e);i = e;return 1;毁线性表Datatype DestoryList_Sq(SqList &L)iffree;= NULL;= =0;return 1;return 0;定是否空表Datatype Li
7、stEmpty_Sq(SqList L)ifreturn 0;return 1;L中数据元素的个数int ListLength_Sq(SqList L)return ;表第 i 个元素Datatype GetElem_Sq(SqList L, int i, Datatype &e)入结点Datatype ListInsert_Sq(SqList &L, int i, Datatype e)除结点Datatype ListDelete_Sq(SqList &L, int i, Datatype &e)出顺序表void Output(SqList L)立一个顺序表
8、");for(i = 0;i < 10;i+)66百度文库- 让每个人平等地提升自我printf(" ");printf("*");printf("n");for(i = 0;i < 10;i +)printf(" ");printf("*");printf("2.输出一个顺序表 ");for(i = 0;i < 10;i+)printf(" ");printf("*");printf("n&quo
9、t;);for(i = 0;i < 10;i +)printf(" ");printf("*");printf("3.向顺序表中插入一个元素");for(i = 0;i < 2;i+)printf(" ");printf("*");printf("n");for(i = 0;i < 10;i +)printf(" ");printf("*");printf("4.删除顺序表中的一个元素");for(
10、i = 0;i < 2;i+)printf(" ");printf("*");printf("n");for(i = 0;i < 10;i+)printf(" ");printf("*");printf("5.从顺序表中取出一个元素");for(i = 0;i < 2;i+)printf(" ");printf("*");printf("n");for(i = 0;i < 10;i+)prin
11、tf(" ");printf("*");printf("6.求顺序表中数据元素个数");for(i = 0;i < 2;i+)printf(" ");printf("*");printf("n");for(i = 0;i < 10;i+)77百度文库- 让每个人平等地提升自我printf(" ");printf("*");printf("7.判断顺序表中是否为空 ");for(i = 0;i < 4
12、;i+)printf(" ");printf("*");printf("n");for(i = 0;i < 10;i+)printf(" ");printf("*");printf("8.销毁线性表 ");for(i = 0;i < 14;i+)printf(" ");printf("*");printf("n");for(i = 0;i < 10;i+)printf(" ");
13、printf("*");printf("0.退出");for(i = 0;i < 8;i+)printf(" ");printf("*");printf("n");put();int main()/主函数int n = 0,i,j = 0,k = 1,m,q,x,y,e;SqList l,la,lc;InitList_Sq(l);mainpp();while(k)printf("请选择 -8 :");scanf("%d",&m);getcha
14、r();switch(m)case 0:exit(0);case 1:CreatList_Sq(l,n);Output(l);88百度文库- 让每个人平等地提升自我break;case 2:Output(l);printf("n");break;case 3:printf(" 请输入要插入的元素的位置及其值: "); fflush(stdin);scanf("%d,%d",&i,&x);ListInsert_Sq(l,i,x);Output(l);printf("n");break;case 4:p
15、rintf("请输入要删除元素的位置:");fflush(stdin);scanf("%d",&i);ListDelete_Sq(l,i,y);Output(l);printf("n");break;case 5:printf("请输入要取出的元素的序号:");fflush(stdin);scanf("%d",&i);GetElem_Sq(l,i,e);printf("取出的第 %d个元素为: %dn",i,e);break;case 6:printf(" 顺序表中数据元素的个数为: %d",ListLength_Sq(l);case 7:q = ListEmpty_Sq(l);if(q = 1)printf("此表为空 ");elseprintf("此表不空 ");printf("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 休闲餐饮连锁店厨师团队合作协议
- 《房屋买卖定金合同范本》
- 临时仓储彩钢板房搭建与仓储物流合同
- 眼科技能培训
- 智能化砂石料采购及仓储物流合同
- 休闲农业园区场地承包经营与服务协议范本
- 拆除工程后期维护服务合同范本
- 茶园租赁与茶叶品牌连锁经营合作合同
- 战国后期教育论著
- 能源领域采购战略合作框架协议
- 2025年湖北高考真题化学试题(解析版)
- 2025-2030年中国停车场行业市场现状供需分析及投资评估规划分析研究报告
- 林业碳汇项目开发流程与审核要点
- 安徽宣城职业技术学院招聘笔试真题2024
- 2025西山煤电井下岗位高校毕业生招聘500人(山西)笔试参考题库附带答案详解
- 排污许可证申请流程
- 药具培训培训试题及答案
- 重庆市大渡口区2023-2024学年四年级下学期数学期末测试卷(含答案)
- 2025年高考全国一卷写作范文4篇
- 坚持严格阵地管理制度
- 2025年广西公需科目答案03
评论
0/150
提交评论