版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年委托生产合同文本
- 海南省药品集中招标采购合同范本
- 旅游公司劳动合同范本
- 2024年居民自来水用水合同
- 建筑材料采购合同简约版
- 2024年小型工程施工合同
- 古诗词诵读 《春江花月夜》公开课一等奖创新教学设计统编版高中语文选择性必修上册
- 应急值班制度培训
- 年产xx建筑构件项目建议书
- 消化系统急救的护理
- 2023年湖南岳阳中考满分作文《换个角度真美妙》2
- 信息化项目施工进度计划及保证措施
- TCI 303-2024 厨余垃圾发酵制备污(废)水处理用碳源
- 2024年秋新人教版七年级上册生物课件 第三章 微生物 综合实践项目 利用细菌或真菌制作发酵食品
- 9《古代科技 耀我中华》改变世界的四大发明 (教学设计)部编版道德与法治五年级上册
- 2024-2030年中国电子俘获探测器(ECD)行业市场发展趋势与前景展望战略分析报告
- 安装工程估价智慧树知到期末考试答案章节答案2024年山东建筑大学
- 2024年中考历史(辽宁卷)真题评析
- 酒店数字化运营概论 课件 项目四 酒店新媒体推广认知
- 2024年东南亚健身房和俱乐部健身跟踪器市场深度研究及预测报告
- 2024-2030年塔格糖行业市场现状供需分析及重点企业投资评估规划分析研究报告
评论
0/150
提交评论