实验二 单链表实现.doc

实验二 单链表实现.doc

ID:59278334

大小:8.32 MB

页数:17页

时间:2020-09-07

实验二 单链表实现.doc_第1页
实验二 单链表实现.doc_第2页
实验二 单链表实现.doc_第3页
实验二 单链表实现.doc_第4页
实验二 单链表实现.doc_第5页
资源描述:

《实验二 单链表实现.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验报告课程名称数据结构课程设计实验项目单链表的实现实验仪器PC机一台学院_____信息管理学院_______专业电子商务班级/学号___电子商务1401______学生姓名____________实验日期___12.27_______成绩_______________________指导教师_________________北京信息科技大学信息管理学院(课程上机)实验报告实验课程名称:数据结构课程设计专业:电子商务班级:商务1401学号:姓名:成绩:实验名称单链表的实现实验地点小营学院机房实验时间12.291.实验目的:1)理解线性

2、表的逻辑特点;2)掌握单链表的定义及C语言实现;3)熟练掌握在单链表中实现各种基本操作;4)掌握使用单链表解决一些简单应用问题的编程。2.实验要求:1)学时为4学时;2)在上机前完成源程序;3)能在机器上正确、调试运行程序;4)本实验需提交实验报告;5)实验报告文件命名方法:实验2_xx班_学号后两位_姓名.doc3.实验内容和步骤:1)基于单链表实现线性表的以下操作:a)在表头插入元素b)在表尾插入元素c)在指定的位置i插入元素d)删除操作e)查找元素f)求表长度g)清空操作h)判断线性表是否为空i)按位序打印线性表中的元素2)单链

3、表的简单应用:a)调用基本操作编写算法删除第i个开始的k个元素;b)计算单链表中值为x的元素的个数;c)将x插入到单链表的适当位置上,以保持单链表中元素的有序性;d)将线性表元素进行就地逆置e)将两个单链表合并为一个单链表。1.实验过程:1)基于单链表实现线性表的以下操作:在表头插入元素intInsert_First(LinkList*Head_pointer,ElemTypex){Node*p;P=(LinkList)malloc(sizeof(Node));if(p==NULL)returnOverFlow;p->data=x;p

4、->next=*Head_pointer;*Head_pointer=p;ReturnOK;}在表尾插入元素intInsert_Last(LinkList*Head_pointer,ElemTypex){Node*p,*q;P=(LinkList)malloc(sizeof(Node));if(p==NULL)returnOverFlow;p->data=x;p->next=NULL;q=*Head_pointer;if(q==NULL)*Head_pointer=p;else{while(q->next!=NULL)q=q->nex

5、t;q->next=p;}ReturnOK;}在指定的位置i插入元素intInsert_i(LinkList*Head_pointer,ElemTypex,inti)Node*p,*q;P=(LinkList)malloc(sizeof(Node));if(p==NULL)returnOverFlow;p->data=x;if(i==0){p->next=*Head_pointer;*Head_pointer=p;returnOK;}else{q=*Head_pointer;while(q->next!=NULL&&i>1){q=q-

6、>next;i--;}if(q!=NULL)p->next=q->next;q->next=p;returnOK;}returnError;}}删除操作intDelete_LinkList(LinkList*Head_pointer,ElemTypex)Node*p,*q;p=*Head_pointer;if(p->data==x){*Head_pointer=(*Head_pointer)->next;free(p);returnOK;}q=p;p=p->next;}}returnError;}查找元素LinkListLocatio

7、n_LinkList(LinkListHead,ElemTypex){LinkListp;p=Head;while(p!=NULL){if(p->data==x)break;p=p->next;}returnp;}求表长度intLength_LinkList(LinkListHead){Node*p;intsum=0;p=Head;while(p!=NULL){sum++;p=p->next;}returnsum;}清空操作voidSetNull_LinkList(LinkList*Head_pointer){Node*p,*q;p=

8、*Head_pointer;while(p!=NULL)q=p;p=p->next;free(q);}*Head_pointer=NULL;}判断线性表是否为空voidIfNull_LinkList(LinkList*H

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。