首页 数据结构-线性表的抽象数据类型定义与类C实现

数据结构-线性表的抽象数据类型定义与类C实现

举报
开通vip

数据结构-线性表的抽象数据类型定义与类C实现数据结构-线性表的抽象数据类型定义与类C实现 ? 抽象数据类型线性表的定义如下: ADT List{ 数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n>=0} 数据关系: R1={| ai-1,ai(- D,i=2,...,n} 基本操作: InitList(&L) 操作结果:构造一个空的线性表L。 DestroyList(&L) 初始条件:线性表已经存在。 操作结果:销毁线性表L。 ClearList(&L) 初始条件:线性表已经存在。 操作结果:将L重置为空...

数据结构-线性表的抽象数据类型定义与类C实现
数据结构-线性 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 的抽象数据类型定义与类C实现 ? 抽象数据类型线性表的定义如下: ADT List{ 数据对象: D={ai| ai(-ElemSet,i=1,2,...,n,n>=0} 数据关系: R1={| ai-1,ai(- D,i=2,...,n} 基本操作: InitList(&L) 操作结果:构造一个空的线性表L。 DestroyList(&L) 初始条件:线性表已经存在。 操作结果:销毁线性表L。 ClearList(&L) 初始条件:线性表已经存在。 操作结果:将L重置为空表。 ListEmpty(L) 初始条件:线性表已经存在。 操作结果:若L为空表,则返回TRUE,否则返回FALSE。 ListLength(L) 初始条件:线性表已经存在。 操作结果:返回L中数据元素的个数。 GetElem(L,i,&e) 初始条件:线性表已经存在,1<=i<=ListLength(L). 操作结果:用e返回第i个数据元素的值。 LocateElem(L,e,compare()) 初始条件:线性表已经存在,compare()是数据元素的判定函数。 操作结果:返回L中第1个与e满足关系compare()的数据元素的位序,若这样的数据元素不存在则返回 值为0。 PriorElem(L,cur_e,&pre_e) 初始条件:线性表已经存在。 操作结果:若cur_e是L的数据元素,且不是第一个,则用pre_e返回它的前驱,否则 操作失败,pre_e 无定义 NextElem(L,cur_e,&next_e) 初始条件:线性表已经存在。 操作结果:若cur_e是L的数据元素,且不是最后一个,则用next_e返回它的后继, 否则操作失败, next_e无定义 ListInsert(&L,i,e) 初始条件:线性表已经存在,1<=i<=ListLength(L)+1. 操作结果:在L中第i个元素位置之前插入新的数据元素e,L的长度加1。 ListDelete(&L,i,&e) 初始条件:线性表已经存在且非空,1<=i<=ListLength(L). 操作结果:删除L的第i个数据元素,并用e返回其值,L的长度减1。 ListTraverse(L,visit()) 初始条件:线性表已经存在。 操作结果:依次对L的每个数据元素调用函数visit()。一旦visit()失败,则操作失败。 }ADT List 2、部分操作的类C实现: InitList(&L) { L.elem=(ElemType *)malloc(LIST_INIT_SIZE*sizeof(ElemType)); if(!L.elem)exit(OVERFLOW); L.length=0; L.listsize=LIST_INIT_SIZE; return OK; }//InitList GetElem(L,i,&e) { *e=L.lem[i] }//GetElem ListInsert(List &L,int i,ElemType e) { if(i<1||i>L.length+1) return ERROR; q=&(L.elem[i-1]); for(p=&(L.elem[L.length-1]);p>=q;--p) *(p+1)=*p; *q=e; ++L.length; return OK; }//ListInsert void union(List &La,List &Lb) //利用两个线性表LA和LB分别表示两个集合A和B,现要求一个新的集合A=A?B。 La_len=ListLength(La);Lb_len=ListLength(Lb); for(i=1;i<=Lb_len;i++){ GetElem(Lb,i,e); if(!LocateElem(La,e,equal)) ListInsert(La,++La_len,e); }//union void MergeList(List La,List Lb,List &Lc) //巳知线性表LA和线性表LB中的数据元素按值非递减有序排列,现要求将LA和LB归并为 一个新的线性表LC,且LC中的元素仍按值非递减有序排列。 { InitList(Lc); i=j=1;k=0; La_len=ListLength(La);Lb_len=ListLength(Lb); while((i<=La_len)&&(j
本文档为【数据结构-线性表的抽象数据类型定义与类C实现】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_682974
暂无简介~
格式:doc
大小:16KB
软件:Word
页数:4
分类:互联网
上传时间:2017-11-11
浏览量:56