实现单链表的各种基本运算.doc

实现单链表的各种基本运算.doc

ID:48924320

大小:82.50 KB

页数:11页

时间:2020-02-07

实现单链表的各种基本运算.doc_第1页
实现单链表的各种基本运算.doc_第2页
实现单链表的各种基本运算.doc_第3页
实现单链表的各种基本运算.doc_第4页
实现单链表的各种基本运算.doc_第5页
资源描述:

《实现单链表的各种基本运算.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、.实现单链表的各种基本运算一、实验目的了解单链表表的结构特点及有关概念,掌握单链表的各种基本操作算法思想及其实现。二、实验内容   编写一个程序,实现顺序表的各种基本运算:1、初始化单链表;              2、单链表的插入;   3、单链表的输出;             4、求单链表的长度   5、判断单链表是否为空;6、输出单链表的第i位置的元素;   7、在单链表中查找一个给定元素在表中的位置;   8、单链表的删除;              9、释放单链表三、算法思想与算法描述简图..主函数mainvoidInitList(Li

2、nkList*&L)初始化单链表LvoidDestroyList(LinkList*&L)//释放单链表LintListEmpty(LinkList*L)//判断单链表L是否为空集intListlength(LinkList*L)//返回单链表L的元素个数voidDispList(LinkListt*L)//输出单链表LintGetElem(LinkList*L,inti,chare)/*ElemTypee)获取单链表L中的第i个元素*/intLocateEmpty(LinkList*L,chare)/*ElemTypee)在单链表L中查找元素e*/

3、intListInsert(LinkList*&L,inti,chare)/*ElemTypee)在单链表中第i个位置上插入元素e*/intListDelete(LinkList*&L,inti,char&e)/*ElemTypee)在单链表L中删除第i个元素*/..四、实验步骤与算法实现#include#includetypedefcharElemType;typedefstructLNode//定义单链表{ElemTypedata;structLNode*next;}LinkList;voidInitList

4、(LinkList*&L){L=(LinkList*)malloc(sizeof(LinkList));//创建头结点L->next=NULL;//头结点赋值为空}voidDestroyList(LinkList*&L)//销毁单链表(释放单链表L占用的内存空间即逐一释放全部结点的空间){LinkList*p=L,*q=p->next;while(q!=NULL){free(p);p=q;q=p->next;}free(p);}intListEmpty(LinkList*L)//判线性表是否为空表ListEmpty(L){return(L->next

5、==NULL);}//若单链表L没有数据结点,则返回真,否则返回假。intListLength(LinkList*L)//求线性表的长度ListLength(L){LinkList*p=L;inti=0;while(p->next!=NULL)..{i++;p=p->next;}return(i);//返回单链表L中数据结点的个数}voidDispList(LinkList*L)//输出线性表DispList(L){LinkList*p=L->next;while(p!=NULL)//逐一扫描单链表L的每个数据结点,并显示各结点的data域值。{pr

6、intf("%c",p->data);p=p->next;}printf("");}intGetELem(LinkList*L,inti,ElemType&e)//求线性表L中指定位置的某个数据元素GetElem(L,i,&e){intj=0;LinkList*p=L;while(jnext;}if(p==NULL)return0;//不存在第i个数据结点else{e=p->data;//存在第i个数据结点ret

7、urn1;}..}intLocateElem(LinkList*L,ElemTypee)//按元素值查找LocateElem(L,e){LinkList*p=L->next;intn=1;while(p!=NULL&&p->data!=e)//在单链表L中从头开始找第1个值域与e相等的结点,若存在这样的结点,则返回位置,否则返回0。{p=p->next;n++;}if(p=NULL)return(0);elsereturn(n);}intListInsert(LinkList*&L,inti,ElemTypee)//插入数据元素ListInsert(

8、&L,i,e){intj=0;LinkList*p=L,*s;while(j

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

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

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