数据结构动画版_PPT教案3.ppt
文本预览下载声明
实例;书目自动检索系统;猴子选大王;约瑟夫环(Joseph Circle);例:;例:;例:;例:
;例:;例:;例:;例:;例:
;例:;例:;例:;例:;例:;例:;例:;例:;存储结构;;在数据元素的非空有限集中
存在唯一的一个被称作“第一个”的数据元素
存在唯一的一个被称作“最后一个”的数据元素
除第一个外,集合中的每个数据元素均只有一个前驱
除最后一个外,集合中的每个数据元素均只有一个后继;定义:一个线性表是n个数据元素的有限序列;ADT List
{ 数据对象:D={ai|ai?ElemSet, i=1,2,…,n, n≥0 },n—表长,n=0,空表
数据关系:R={ai-1,ai| ai-1,ai?D, i=2,…,n },i为ai在线性表中位序
基本操作:
结构初始化操作
结构销毁操作
引用型操作(只读操作)
加工型操作(修改操作)
} ADT List;初始化操作:
InitList(L)
操作结果:构造一个空线性表L
结构销毁操作:
DestroyList(L)
初始条件:线性表L已存在
操作结果:销毁线性表L
引用型操作:
ListEmpty(L) //线性表判空
初始条件:线性表L已存在
操作结果:若L为空表,返回TRUE;否则返回FALSE
ListLength(L) //求线性表的表长
初始条件:线性表L已存在
操作结果:返回L中数据元素个数
GetElem(L, i ,e) //求线性表的第i个元素
初始条件:线性表L已存在,且1≤i ≤ ListLength(L)
操作结果:用e返回L中第i个数据元素的值;引用型操作:
LocateElem(L,e,compare()) //定位函数
初始条件:线性表L已存在,compare()是元素判定函数
操作结果:返回L中第1个与e满足关系compare()的元素的位序。
PriorElem(L,cur_e,pre_e) //求数据元素的前驱
初始条件:线性表L已存在
操作结果:若cur_e是L中元素,且不是第一个,则用pre_e 返回其前驱;否则操作失败,pre_e无定义
NextElem(L,cur_e,next_e) //求数据元素的后继
初始条件:线性表L已存在
操作结果:若cur_e是L中元素,且不是最后一个,则用next_e 返回其后继;否则操作失败,next_e无定义
ListTraverse(L,visit()) //线性表遍历
初始条件:线性表L已存在,visit()为某个访问函数
操作结果:依次对L中每个元素调用函数visit()。一旦visit()失败,则操 作失败 ;加工型操作:
ClearList(L) //线性表置空
初始条件:线性表L已存在
操作结果:将L重置为空表
ListInsert(L, i, e) //插入数据元素
初始条件:线性表L已存在,且1≤i ≤ ListLength(L)+1
操作结果:在L中第第i个位置之前插入元素e,L的长度加1
ListDelete (L, i, e) // 删除数据元素
初始条件:线性表L已存在且非空,1≤i ≤ ListLength(L)
操作结果:删除L的第i个元素,并用e返回其值,L的长度减1
;利用上面定义的线性表的ADT,可以实现更复杂的操作;void Union( List La, List Lb)
{ La_len=ListLength(La); //求线性表长度
Lb_len=ListLength(Lb);
for(i=1;i=Lb_len;i++)
{
显示全部