数据结构-实验2-单链表的基本运算

数据结构-实验2-单链表的基本运算

ID:6107494

大小:80.00 KB

页数:7页

时间:2018-01-03

数据结构-实验2-单链表的基本运算_第1页
数据结构-实验2-单链表的基本运算_第2页
数据结构-实验2-单链表的基本运算_第3页
数据结构-实验2-单链表的基本运算_第4页
数据结构-实验2-单链表的基本运算_第5页
资源描述:

《数据结构-实验2-单链表的基本运算》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、上海应用技术学院《数据结构》课程实验报告实验名称单链表的基本运算实验序号2实验日期2012-4-8姓名曹志华院系计算机科学与信息工程学院班级101041C1学号1010411501专业计算机科学与技术指导教师武伟成绩教师评语一、实验目的和要求1.了解单链表基本运算的实现;2.进一步掌握链表使用的步骤;3.牢固掌握建立单链表算法,特别是尾插法建表算法,是很多其他复杂复杂的基础;二、实验项目摘要编写一个程序algo2-2.cpp.实现单链表的各种基本运算,并在此基础上设计一个主程序完成如下功能:1.初始化顺序表h;2.依次采用尾插法插入a,b,c,

2、d,e元素;3.输出单链表h;4.输出单链表h长度;5.判断单链表h是否为空;6.输出单链表h的第3个元素;7.输出元素’a’的位置;8.在第4个元素位置上插入“f”元素;9.输出单链表h;10.删除单链表h的第3个元素;11.输出单链表h;12.释放单链表h。三、实验预习内容单链表基本运算的实现:单链表中,每一个结点有一个指针域指向直接后继。l插入结点运算l删除结点运算l建立单链表l线性表基本运算的实现1.初始化线性表2.求线性表的长度3.判断该线性表是否为空4.销毁线性表5.求线性表中某个数据元素值6.按元素查找计算机科学与信息工程学院·2

3、010年编制上海应用技术学院1.插入数据元素2.删除数据元素3.输出线性表三、实验结果与分析1.实验结果:2.实验分析:这次实验与上次的顺序表很相似,但相比之下,单链表比较难一些,通过这次实验我明白了什么是线性表的链式存储结构,在编写程序时出现了很多错误,但通过看书,查找资料慢慢改进,在改进中也学会了很多,比如了解了单链表基本运算算法的基本格式和构成。虽然有很多不足,但在今后的实验中我会慢慢改进。计算机科学与信息工程学院·2010年编制上海应用技术学院1.源程序#include#include//#defi

4、nemaxsize1024typedefcharElemType;typedefstructnode{ElemTypedata;structnode*next;}LinkList;//初始化线性表voidInitList(LinkList*&h){h=(LinkList*)malloc(sizeof(LinkList));h->next=NULL;}//求线性表的长度intListLength(LinkList*h){inti=0;LinkList*p=h->next;while(p!=NULL){i++;p=p->next;}returni;

5、}//求出线性表中第i个元素intGetElem(LinkList*h,inti,ElemType&e){intj=0;LinkList*p=h->next;if(i<1

6、

7、i>ListLength(h))return(0);while(jnext;j++;}e=p->data;计算机科学与信息工程学院·2010年编制上海应用技术学院return(1);}//判断单链表是否为空intListEmpty(LinkList*h){return(h->next==NULL);}//输出元素的位置(按元素值查找)intLocateEl

8、em(LinkList*h,ElemTypee){LinkList*p=h->next;inti=1;while(p!=NULL&&p->data!=e){p=p->next;i++;}if(p==NULL)return(0);elsereturn(i);}//插入数据元素intListInsert(LinkList*&h,inti,ElemTypee){intj=0;LinkList*p=h,*s;while(jnext;}if(p==NULL)return0;else{s=(LinkList*

9、)malloc(sizeof(LinkList));s->data=e;s->next=p->next;p->next=s;计算机科学与信息工程学院·2010年编制上海应用技术学院return1;}}//删除数据元素intListDelete(LinkList*&h,inti,ElemType&e){intj=0;LinkList*p=h,*q;while(jnext;}if(p==NULL)return0;else{q=p->next;if(q==NULL)return0;e=q->data;p

10、->next=q->next;free(q);return1;}}//销毁线性表intDestroyList(LinkList*&h){LinkLis

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

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

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