数据结构zmz2顺序表.ppt
《数据结构zmz2顺序表.ppt》由会员分享,可在线阅读,更多相关《数据结构zmz2顺序表.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主讲:郑梦泽主讲:郑梦泽信息工程学院信息工程学院大家好大家好第二章第二章2.2 顺序表顺序表一、线性表的定义一、线性表的定义书目文件书目文件各条书目信息之间存在一个对一个的线性关系各条书目信息之间存在一个对一个的线性关系数据对象、数据元素(记录)、数据项(属性)数据对象、数据元素(记录)、数据项(属性)数据操作:查找,插入,删除,修改等数据操作:查找,插入,删除,修改等在数据元素的非空有限集中存在存在唯一唯一的一个被称作的一个被称作“第一个第一个”的数据元素的数据元素存在存在唯一唯一的一个被称作的一个被称作“最后一个最后一个”的数据元素的数据元素除第一个外,集合中的每个数据元素均除第一个外,集
2、合中的每个数据元素均只有一个只有一个前驱前驱除最后一个外,集合中的每个数据元素均除最后一个外,集合中的每个数据元素均只有一只有一个后继个后继一、线性表的定义(特点)定义:一个线性表是n个数据元素的有限序列例例 打字游戏(打字游戏(B,H,Y,U.T)特征:有限、序列、同构元素个数n表长度,n=0空表1in时ai-1是ai的直接前驱,a1无直接前驱ai+1是ai的直接后继,an无直接后继运算:存取 插入 删除 查找 合并 分解 排序 求长度数据元素数据元素一、线性表的定义(逻辑结构)ADT List 数据对象数据对象:D=ai|ai ElemSet,i=1,2,n,n0,n表长表长,n=0,空表
3、空表 数据关系数据关系:R=|ai-1,ai D,i=2,n,i为线性表中为线性表中位置位置 基本操作基本操作:结构结构初始化初始化操作操作 结构结构销毁销毁操作操作 引用型引用型操作操作(只读操作只读操作)加工型加工型操作操作(修改操作修改操作)ADT List二、线性表的抽象数据类型定义初始化操作初始化操作:InitList(&L)操作结果:构造一个空线性表操作结果:构造一个空线性表L结构销毁操作结构销毁操作:DestroyList(&L)初始条件:线性表初始条件:线性表L已存在已存在 操作结果:销毁线性表操作结果:销毁线性表L二、线性表的抽象数据类型定义引用型操作引用型操作:ListEm
4、pty(L)/线性表判空线性表判空 初始条件:线性表初始条件:线性表L已存在已存在 操作结果:若操作结果:若L为空表,返回为空表,返回TRUE;否则返回否则返回FALSE ListLength(L)/求线性表的表长求线性表的表长 初始条件:线性表初始条件:线性表L已存在已存在 操作结果:返回操作结果:返回L中数据元素个数中数据元素个数 GetElem(L,i,&e)/求线性表的第求线性表的第i个元素个元素 初始条件:线性表初始条件:线性表L已存在,且已存在,且1i ListLength(L)操作结果:用操作结果:用e返回返回L中第中第i个数据元素的值个数据元素的值 LocateElem(L,e
5、)/定位函数定位函数 初始条件:线性表初始条件:线性表L已存在已存在 操作结果:返回操作结果:返回L中第中第1个与个与e相同的元素的位序相同的元素的位序i二、线性表的抽象数据类型定义引用型操作引用型操作:PriorElem(L,e,&pre_e)/求数据元素的前驱求数据元素的前驱 初始条件:线性表初始条件:线性表L已存在已存在 操作结果:若操作结果:若e是是L中元素,且不是第一个,则用中元素,且不是第一个,则用pre_e返回其前驱返回其前驱 NextElem(L,e,&next_e)/求数据元素的后继求数据元素的后继 初始条件:线性表初始条件:线性表L已存在已存在 操作结果:若操作结果:若e是
6、是L中元素中元素,且不是最后一个且不是最后一个,则用则用next_e返回其后继返回其后继 ListTraverse(L,visit()/线性表遍历线性表遍历 初始条件:线性表初始条件:线性表L已存在已存在,visit()为某个访问函数为某个访问函数 操作结果:依次对操作结果:依次对L中每个元素调用函数中每个元素调用函数visit()。二、线性表的抽象数据类型定义加工型操作加工型操作:ClearList(&L)/线性表置空线性表置空 初始条件:线性表初始条件:线性表L已存在已存在 操作结果:将操作结果:将L重置为空表重置为空表 ListInsert(&L,i,e)/插入数据元素插入数据元素 初始
7、条件:线性表初始条件:线性表L已存在,且已存在,且1i ListLength(L)+1 操作结果:在操作结果:在L中第第中第第i个位置之前插入元素个位置之前插入元素e,L的长度加的长度加1 ListDelete(&L,i,&e)/删除数据元素删除数据元素 初始条件:线性表初始条件:线性表L已存在且非空,已存在且非空,1i ListLength(L)操作结果:删除操作结果:删除L的第的第i个元素个元素,并用并用e返回其值返回其值,L的长度减的长度减1 二、线性表的抽象数据类型定义 三、线性表的顺序存储结构an.ai.a2a1LlLOC(a2)=LOC(a1)+Ll其中:uL一个元素占用的存储单元
8、个数uLOC(ai)线性表第i个元素的地址lLOC(ai+1)=LOC(ai)+LlLOC(ai)=LOC(a1)+(i-1)*L顺序表定义:用一组地址连续的存储单元存放一个线性表叫元素地址计算方法:三、线性表的顺序存储结构an.ai.a2a1Lv特点:l实现逻辑上相邻 物理地址相邻l实现随机存取v用什么数据类型来实现?v一维数组!顺序表#define M 100int aM;int n;/*元素个数元素个数na1=200;p-length=20;lengthelem表长三、线性表的顺序存储结构方案二方案二缺点:表容量难以扩充缺点:表容量难以扩充length表长listsize表容量elem存
9、储区首地址a1a2an01length-1listsize-1elem L.elem=(int*)malloc(M*sizeof(int);free(L.elem);L.elem=(int*)realloc(L.elem,(L.listsize+20)*sizeof(int);SqList L;int elemM;=int *elem;动态动态申请申请和和释放释放内存内存int*elem=(ElemType*)malloc(M*sizeof(int);elem=(int*)realloc(elem,M*2*sizeof(int);free(elem);L.listsize=100;三、线性表的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 zmz2 顺序
限制150内