文档详情

数据结构动画版_PPT教案3.ppt

发布:2017-04-18约1.45万字共163页下载文档
文本预览下载声明
实例;书目自动检索系统;猴子选大王;约瑟夫环(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++) {
显示全部
相似文档