




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、云南大学数据结构实验报告第 四 次实验学号:姓名: 一、实验目的 复习线性表的逻辑结构,存储结构及基本操作;掌握顺序表和(带头结点)单链表;了解有序表。二、实验内容 (必做题)假设有序表中数据元素类型是整型,请采用顺序表或(带头结点)单链表实现: OrderInsert(&L,e,int(*compare)()/根据有序判定函数compare,在有序表L的适当位置插入元素e; 利用OrderInsert()构造有序表; OrderMerge(&La,&Lb,&Lc,int(*compare)()/根据有序判定函数compare,将两个有序表La和Lb归并为一个有序表Lc。 (选做题)请采用(带
2、头结点)单链表实现: 升幂多项式的构造,即各个结点存储各项系数与指数,并且链表按指数升序有序;约定系数不能等于0,指数不能小于0) 两个升幂多项式的相加。三、算法描述(采用自然语言描述)分别插入第一个链表和第二个链表的数据;根据有序判定函数compare,将两个有序表La和Lb归并为一个有序表。输出归并后的有序表。四、详细设计(画出程序流程图) 开始输入数据输出归并后的有序表结束将两个有序表归并为一个有序表五、程序代码(给出必要注释)1.#include #include typedef struct LNodeint date; struct LNode *next; LNode,*Link
3、;/-线性表的单链表存储结构typedef struct LinkListLink head;/指向线性链表中的头结点 int len;/指示链表中数据元素的个数 LinkList;int compare (LinkList *L,int e)int Lc=0; Link p; p=L-head; p=p-next; while(p!=NULL)if(ep-date)p=p-next; Lc+; else return Lc; return Lc;/-有序判定函数comparevoid OrderInsert (LinkList *L,int e,int (*compare)()Link te
4、mp,p,q; int Lc,i; temp=(Link)malloc(sizeof(LNode); temp-date=e; p=q=L-head; p=p-next; Lc=(*compare)(L,e); if(Lc=L-len)while(q-next!=NULL)q=q-next; q-next=temp; temp-next=NULL;elsefor(i=0; inext;q=q-next; q-next=temp;temp-next=p; +L-len;/-利用OrderInsert()构造有序表;根据有序判定函数compare,在有序表L的适当位置插入元素e;void Orde
5、rMerge (LinkList *La,LinkList *Lb,int (*compare)()int i,Lc=0; Link temp,p,q; q=La-head-next; while(q!=NULL)p=Lb-head; temp=(Link)malloc(sizeof(LNode); temp-date=q-date; Lc=(*compare)(Lb,q-date); if(Lc=Lb-len)while(p-next!=NULL)p=p-next; p-next=temp; temp-next=NULL;elsefor(i=0; inext; temp-next=p-nex
6、t; p-next=temp; q=q-next; +Lb-len;/根据有序判定函数compare,将两个有序表La和Lb归并为一个有序表LinkList *Initialize (LinkList *NewList)int i; Link temp; NewList=(LinkList *)malloc(2+1)*sizeof(LinkList); for(i=0; idate=0; temp-next=NULL; (NewList+i)-head=temp; (NewList+i)-len=0;return NewList;void Insert (LinkList *NewList)i
7、nt a,i; char c; printf(在第1个表中插入数据,以空格和回车为间隔,输入“.”对下个表插入数据n); for(i=0; i2; i+)while(1)scanf(%d,&a);c=getchar();if(c=.)if(ihead-next; while(p!=NULL)printf(%dt,p-date); p=p-next;void Display (LinkList *NewList,void (*Show)()printf(所有有序表如下:n); printf(第一个有序表为:); (*Show)(NewList+0); printf(n); printf(第二个有序表为:); (*Show)(NewList+1); printf(n); printf(归并后有序表为:n); (*Show)(NewList+2);int main()LinkList *NewList=NULL; int i; printf(t开始插入数据!n数据与“.”不要输入在同一行!n); NewList=Initialize(NewList); Insert(NewList); for(i=0; i2; i+)OrderMerge (NewList+i,Ne
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年吉林电子信息职业技术学院单招职业适应性测试题库参考答案
- 2025年贵州工程职业学院单招职业适应性测试题库带答案
- 2025年吉林省四平市单招职业适应性测试题库审定版
- 2025年吉林司法警官职业学院单招职业倾向性测试题库含答案
- 2025年嘉兴职业技术学院单招职业技能测试题库及答案一套
- 2025年嘉兴南湖学院单招职业倾向性测试题库1套
- 计算机图形学知到智慧树章节测试课后答案2024年秋北京理工大学
- 幼儿园端午节活动方案策划范文
- 2025年淮南师范学院单招职业技能测试题库参考答案
- Unit+3+Conservation+Lesson+2+War+on+Plastic+Packets+知识点及默写清单 高中英语北师大版(2019)选择性必修第一册
- 关于“全民阅读”的中考语文非连续性文本阅读试题及答案阅读(2018广东广州中考语文非连续性文本阅读试题及答案)
- 某学校食堂服务投标书
- 空调维保服务项目质量保障措施
- 《马克思主义与社会科学方法论》课后思考题答案全
- 急性心肌梗塞
- 八年级地理下期教学计划(星球地图版)
- 蓝色科技风半导体产业PPT模板
- 院感手卫生培训课件
- 铸牢中华民族共同体意识学习PPT
- 多重耐药鲍曼不动杆菌治疗课件
- 物理光学-第二章-光波的叠加与分析-课件
评论
0/150
提交评论