基于单链表实现集合的并交差运算实验报告.doc

基于单链表实现集合的并交差运算实验报告.doc

ID:50687226

大小:158.00 KB

页数:21页

时间:2020-03-07

基于单链表实现集合的并交差运算实验报告.doc_第1页
基于单链表实现集合的并交差运算实验报告.doc_第2页
基于单链表实现集合的并交差运算实验报告.doc_第3页
基于单链表实现集合的并交差运算实验报告.doc_第4页
基于单链表实现集合的并交差运算实验报告.doc_第5页
资源描述:

《基于单链表实现集合的并交差运算实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、基于单链表实现集合的并交差运算实验报告一实验题目:基于单链表实现集合的并交差运算二实验要求:2.2:编写一个程序,实现顺序表的各种基本运算(1)初始化单链表h;(2)依次采用尾插法插入a,b,c,d,e元素;(3)输出单链表h(4)输出单链表h的长度(5)判断单链表h是否为空(6)输出单链表h的第三个元素(7)输出元素在a的位置(8)在第4个元素位置上插入f元素(9)输出单链表h(10)删除L的第3个元素(11)输出单链表(12)释放单链表2.2:编写一个程序,采用单链表表示集合(集合中不存在重复的元素),并将其按照递增的方式排序,构成有序单链表,并求这

2、样的两个集合的并,交和差。三实验内容:3.1线性表的抽象数据类型:ADTList{数据对象;D=数据关系:R1=基本操作:InitList(&L)操作结果;构造一个空的线性表LDestroyList(&L)初始条件:线性表L已存在操作结果:销毁线性表LClearList(&L)初始条件:线性表L已存在操作结果:将L置为空表ListEmpty(L)初始条件:线性表已存在操作结果:若L为空表,则返回TRUE,否则返回FALSEListLength(L)初始条件:线性表已存在操作结果:返回L中数据元素的个数GetElem(L,i)初始条件:线性表已存在,1<=

3、i<=ListLength(L)操作结果:用e返回L中第i个数据元素的值LocateElem(L,i,e)初始条件:线性表已存在,用循环遍历整个线性表,如果e与线性表中的元素相同;操作结果:用此时的i+1返回该元素在线性表的位序ListInsert(&L,i,e)初始条件:线性表存在,1<=i<=ListLength(L)+1;操作结果:在L中第i个位置之前插入新的数据元素,e,L的长度加1。ListDelete(&L,i,&e)初始条件:线性表L已存在且非空,1<=i<=ListLength(L);操作结果:删除L的第i个数据元素,并用e返回其值,L的

4、长度减1}ADTList3.2存储结构的定义;typedefcharElemType;typedefstructLNode{ElemTypedata;structLNode*next;}LinkList;3.3基本操作实现:/*单链表的初始化*/voidInitList(LinkList*&L){L=(LinkList*)malloc(sizeof(LinkList));L->next=NULL;}/*向单链表中插入数据元素*/boolListInsert(LinkList*&L,intx,chare){intj=0;LinkList*p=L,*s;wh

5、ile(p!=NULL&&jnext;j++;}if(p==NULL){returnfalse;}else{s=(LinkList*)malloc(sizeof(LinkList));s->data=e;s->next=p->next;p->next=s;returntrue;}}/*输出单链表*/voidDispList(LinkList*L){LinkList*p=L->next;while(p!=NULL){printf("%c",p->data);p=p->next;}printf("");}/*求单链表的长度*/int

6、ListLength(LinkList*L){LinkList*p=L->next;inti=0;while(p!=NULL){i++;p=p->next;}returni;}/*查看单链表是否为空*/boolListEmpty(LinkList*L){returnL->next==NULL;}/*求单链表中某个数据元素值*/boolGetElem(LinkList*L,inti,ElemType&e){LinkList*p=L;intj=0;while(p!=NULL&&jnext;j++;}if(p==NULL){returnfal

7、se;}else{e=p->data;returntrue;}}/*在单链表中查找元素*/intLocateElem(LinkList*L,ElemTypee){LinkList*p=L;inti=0;while(p!=NULL&&p->data!=e){p=p->next;i++;}if(p==NULL){return0;}else{returni;}}/*删除单链表中第i个元素*/boolListDelete(LinkList*&L,inti,ElemType&e){intj=0;LinkList*p=L,*q;while(p!=NULL&&j

8、1){p=p->next;j++;}if(p==NULL)returnfalse

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

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

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