数据结构实验报告-线性链表_第1页
数据结构实验报告-线性链表_第2页
数据结构实验报告-线性链表_第3页
数据结构实验报告-线性链表_第4页
数据结构实验报告-线性链表_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、。课程名称数据结构实验名称线性链表的实现和应用实验日期 2015.1.16 班级姓名学号仪器编号实验报告要求1.实验目的2.实验要求3.实验步骤4.程序清单5.运行情况6.流程图7.实验体会实验目的:掌握线性表的链式存储结构设计与基本操作的实现。实验内容:1 、采用书上第28 页定义的线性表链式存储结构,编程实现书中算法2.8 、算法 2.9 、算法 2.10 、算法 2.11 ,以及输出线性链表的算法。另外,编写主函数对所实现的算法进行测试。2 、采用线性表的链式存储结构,实现线性链表的合并操作:设有线性链表La 和 Lb ,试设计算法将 La 和 Lb 归并为新的线性链表Lc;设线性链表L

2、a 和 Lb 中的数据元素为整数,且均已按值非递减有序排列,要求Lc 中的数据元素也按值非递减有序排列。程序清单:1.#include#include#define ERROR 0#define NULL 0#define OK 1typedef int ElemType;-可编辑修改 -。typedef struct LNodeElemType data;struct LNode *next;LNode,*LinkList;int GetElem_L(LinkList L,int i, ElemType &e)int j=1;LinkList p=L-next;while(p&jnext;+

3、j;if(!p|ji)return ERROR;e=p-data;return OK;int ListInsert_L(LinkList &L,int i,ElemType e)int j=0;LinkList p=L,s;while(p&jnext;-可编辑修改 -。+j;if(!p|ji-1)return ERROR;s=(LinkList)malloc(sizeof(LNode);s-data=e;s-next=p-next;p-next=s;return OK;int ListDelete_L(LinkList &L,int i,ElemType &e)int j=0;LinkList

4、 p=L,q;while(p-next&jnext;+j;if(!(p-next)&ji-1)return ERROR;q=p-next;p-next=q-next;e=q-data;free(q);-可编辑修改 -。return OK;void CreateList_L(LinkList &L,int n)int i;LinkList p,q;L=(LinkList)malloc(sizeof(LNode);q=L;for(i=1;idata);q-next=p;q=p;q-next=NULL;int OutputList_L(LinkList L)LinkList p=L-next;if(

5、p=NULL)return ERROR;-可编辑修改 -。while(p!=NULL)printf(%d,p-data);p=p-next;printf(n);return OK;void main()ElemType i,e,a,n,x,y,dd;LinkList L;printf(输入元素个数n : n);scanf(%d,&n);printf(请输入链表中的%d 个元素: n,n);CreateList_L(L,n);printf(输出顺序表所有元素:n);OutputList_L(L);printf(请输入赋值的第i 个元素: );scanf(%d,&i);GetElem_L(L,i,

6、e);printf(e=%dn,e);printf(插入元素的位置:);-可编辑修改 -。scanf(%d,&x);printf(插入的元素为: );scanf(%d,&a);printf(在顺序表第 %d 个位置插入 %dn,x,a);ListInsert_L(L,x,a);printf(输出插入操作后顺序表所有元素:n);OutputList_L(L);printf(删除元素的位置:);scanf(%d,&y);printf(删除顺序表第%d 个位置的元素n,y);ListDelete_L(L,y,dd);printf(输出删除操作后顺序表所有元素:n);OutputList_L(L);2

7、.#include#include#define ERROR 0#define NULL 0#define OK 1typedef int ElemType;typedef struct LNode-可编辑修改 -。ElemType data;struct LNode *next;LNode,*LinkList;void CreateList_L(LinkList &L,int n)int i;LinkList p,q;L=(LinkList)malloc(sizeof(LNode);q=L;for(i=1;idata);q-next=p;q=p;q-next=NULL;int OutputL

8、ist_L(LinkList L)LinkList p=L-next;if(p=NULL)-可编辑修改 -。return ERROR;while(p!=NULL)printf(%d,p-data);p=p-next;printf(n);return OK;void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc)LinkList pa,pb,pc;pa=La-next;pb=Lb-next;Lc=pc=La;while(pa&pb)if(pa-datadata)pc-next=pa;pc=pa;pa=pa-next;-可编辑修改 -。els

9、epc-next=pb;pc=pb;pb=pb-next;pc-next=pa?pa:pb;free(Lb);void main()int a,b;LinkList La,Lb,Lc=0;printf(输入 La 元素个数 a: n);scanf(%d,&a);printf(请输入链表La 中的元素: n);CreateList_L(La,a);printf(输入 Lb 元素个数b : n);scanf(%d,&b);printf(请输入链表Lb 中的元素: n);CreateList_L(Lb,b);printf(输出链表La 所有元素 :n);-可编辑修改 -。OutputList_L(La);pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论