线性表的链式存储结构实验报告
更新时间:2023-11-30 04:00:01 阅读量: 教育文库 文档下载
实验报告
课程名称:数据结构与算法分析 实验名称:链表的实现与应用
实验日期:2015.01.30 班级: 数媒1401 姓名: 范业嘉 学号 1030514108 一、实验目的
掌握线性表的链式存储结构设计与基本操作的实现。
二、实验内容与要求
⑴定义线性表的链式存储表示;
⑵基于所设计的存储结构实现线性表的基本操作; ⑶编写一个主程序对所实现的线性表进行测试;
⑷线性表的应用:①设线性表L1和L2分别代表集合A和B,试设计算法求A和B的并集C,并用 线性表L3代表集合C;②(选做)设线性表L1和L2中的数据元素为整数,且均已按值非递减有序排列,试设计算法对L1和L2进行合并,用线性表L3保存合并结果,要求L3中的数据元素也按值非递减有序排列。
⑸设计一个一元多项式计算器,要求能够:①输入并建立多项式;②输出多项式;③执行两个多项式相加;④执行两个多项式相减;⑤(选做)执行两个多项式相乘。
三、数据结构设计
1.按所用指针的类型、个数、方法等的不同,又可分为: 线性链表(单链表) 静态链表 循环链表 双向链表 双向循环链表
2.用一组任意的存储单元存储线性表中数据元素,用指针来表示数据元素间的逻辑关系。
四、算法设计
1.定义一个链表
void creatlist(Linklist &L,int n) { int i; Linklist p,s; L=(Linklist)malloc(sizeof(Lnode)); p=L; L->next=NULL; for(i=0;i
1 / 8
} }
2.(1)两个链表的合并
void Mergelist(Linklist &La,Linklist &Lb,Linklist &Lc) { Linklist pa,pb,pc; pa=La->next;pb=Lb->next; Lc=pc=La; while(pa&&pb) { if(pa->data<=pb->data) {pc->next=pa;pc=pa;pa=pa->next;} else {pc->next=pb;pc=pb;pb=pb->next;} } pc->next=pa?pa:pb; free(Lb); }
(2)两个链表的并集
Linklist unionlist(Linklist &La,Linklist &Lb) { Linklist p1,p2,head,q,s; int flag; head=q=(Linklist)malloc(sizeof(Lnode)); p1=La->next; while(p1) { flag=0; p2=Lb->next; while(p2) { if(p1->data==p2->data) { flag=1; break; } p2=p2->next; } if(flag==0) { s=(Linklist)malloc(sizeof(Lnode)); s->data=p1->data; q->next=s; q=s; } p1=p1->next;
2 / 8
} q->next=Lb->next; return head; }
3.(1)一元多项式的加法
List addpoly(List pa,List pb) //一元多项式的加法 { int n; List pc,s,p; pa=pa->next; pb=pb->next; pc=(List)malloc(sizeof(struct Linklist)); pc->next=NULL; p=pc; while(pa!=NULL&&pb!=NULL) { if(pa->expn>pb->expn) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next; } else if(pa->expn
3 / 8
s->coef=n; s->next=NULL; p->next=s; p=s; } pb=pb->next; pa=pa->next; } } while(pa!=NULL) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next; } while(pb!=NULL) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pb->expn; s->coef=pb->coef; s->next=NULL; p->next=s; p=s; pb=pb->next; } return pc; }
(2)一元多项式的减法
List subpoly(List pa,List pb) //一元多项式的减法 { int n; List pc,s,p; pa=pa->next; pb=pb->next; pc=(List)malloc(sizeof(struct Linklist)); pc->next=NULL; p=pc; while(pa!=NULL&&pb!=NULL) { if(pa->expn>pb->expn)
4 / 8
{ s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next; } else if(pa->expn
while(pa!=NULL) { s=(List)malloc(sizeof(struct Linklist)); s->expn=pa->expn; s->coef=pa->coef; s->next=NULL; p->next=s; p=s; pa=pa->next; }
5 / 8
正在阅读:
线性表的链式存储结构实验报告11-30
高大支模架施工技术交底 - 图文11-15
我的家乡碗窑作文700字07-02
辩证法三大规律论文04-10
小学生上课“走神”现象分析及对策研究-2022年作文04-05
盖州金都铭仁居12-29
五年级上品社优化题解目录11-13
《三维设计》2016级数学一轮复习基础讲解圆锥曲线的综合问题05-24
乙酸乙酯皂化反应动力学研究11-20
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- 链式
- 线性
- 存储
- 结构
- 实验
- 报告
- 如何将多媒体技术合理运用到化学教学中
- 《政府经济学》期末复习题(1)
- 建筑施工现场安保人员管理制度
- 2015-2016学年度新编人教版上学期四年级数学上册期末综合试卷
- 文学类文本阅读 - 表达方式、修辞手法、表现手法
- 合成氨工艺流程的系统分析与节能措施
- 用于银行贷款2013年隧道维修养护机械项目可行性研究报告(甲级资质+专家答疑)编制方案
- 毛概 多选题
- 组织架构及职能梳理
- 税法与纳税筹划第五版课后习题解析
- 苏教版五年级数学下册第一单元简易方程教案2(2015年最新版)
- 祯埠特大桥跨高速公路防护方案
- 国家在战争或武装冲突中使用核武器的合法性问题咨询意见案
- 《高等教育法规》读书心得
- 大学生创业基础 李肖鸣期末考试答案
- 五粮液集团有限公司价值评估
- 师卫生局到对九十一团疾控中心进行绩效考核
- 奥美拉唑生产工艺规程
- 补充耕地质量验收评定技术规范
- 36万保证金淘宝B店大客户外包合作协议 -