欢迎来到天天文库
浏览记录
ID:59278334
大小:8.32 MB
页数:17页
时间:2020-09-07
《实验二 单链表实现.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
此文档下载收益归作者所有