武汉理工大学-信息工程学院-数据结构-ppt-课件ch02-1-线性表1-定义与顺序表示_第1页
武汉理工大学-信息工程学院-数据结构-ppt-课件ch02-1-线性表1-定义与顺序表示_第2页
武汉理工大学-信息工程学院-数据结构-ppt-课件ch02-1-线性表1-定义与顺序表示_第3页
武汉理工大学-信息工程学院-数据结构-ppt-课件ch02-1-线性表1-定义与顺序表示_第4页
武汉理工大学-信息工程学院-数据结构-ppt-课件ch02-1-线性表1-定义与顺序表示_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 线性表,数据结构讲义,定义与顺序表示,信息工程学院 魏洪涛 Email:,a1, a2, ai-1,ai, ai1 ,, an,2.1 线性表的逻辑结构,1. 线性表的定义:是n个数据元素的有限序列,n=0时称为,数据元素,线性起点,ai的直接前趋,ai的直接后继,下标,是元素的序号,表示元素在表中的位置,n为元素总个数,即表长,空表,线性终点,例1 分析26 个英文字母组成的英文表,A, B, C, D, , Z,例2 分析学生情况登记表,数据元素都是记录; 元素间关系是线性,数据元素都是字母; 元素间关系是线性,同一线性表中的元素必定具有相同特性,线性表的抽象数据类型的定义: AD

2、T List 数据对象:D=ai|aiElemset,i=1,2,n,n0 数据关系:R1=|ai-1,aiD,i=2,n 基本操作: InitList(ListInsert(lc,k+,ai); while(j=lb_len) GetElem(lb,j+,bj); ListInsert(lc,k+,bj);,线性表的顺序表示又称为顺序存储结构或顺序映像,顺序存储定义: 把逻辑上相邻的数据元素存储在 物理上相邻的存储单元中的存储结构,2.2.1 顺序表的表示,2.2 线性表的顺序表示和实现,线性表顺序存储特点,1. 逻辑上相邻的数据元素,其物理上也相邻; 2. 若已知表中首元素在存储器中的位置

3、,则其他元素存放位置亦可求出(利用数组下标)。计算方法是: 设首元素a1的存放地址为LOC(a1)(称为首地址),设每个元素占用存储空间(地址长度)为L字节,则表中任一数据元素的存放地址为: LOC(ai) = LOC(a1) + L *(i-1) LOC(ai+1) = LOC(ai)+L,线性表的顺序存储结构示意图,地址 内容 元素在表中的位序,1,i,2,n,空闲区,i+1,L,b=LOC(a1,b + L,b +(i-1)L,b +(n-1)L,b +(max-1)L,一个一维数组,下标的范围是到,每个数组元素用相邻的个字节存储。存储器按字节编址,设存储数组元素的第一个字节的地址是,则

4、的第一个字节的地址是,113,例1,因此:LOC( M3 ) = 98 + 5 (3-0) =113,解:地址计算通式为,LOC(ai) = LOC(a1) + L *(i-1,线性表的顺序存储结构定义(静态,define MAXSIZE 100 typedef struct ElemType elemMAXSIZE; int length; SqList,2.2.2 顺序表的实现(或操作,数据结构基本运算操作有: 初始化、插入、删除、查找、排序、修改,1)初始化: Status InitList_Sq(SqList,2)插入 在线性表的第i个位置前插入一个元素,实现步骤: 将第n至第i 位的

5、元素向后移动一个位置; 将要插入的元素写到第i个位置; 表长加1。 注意:事先应判断: 插入位置i 是否合法?表是否已满,长度为n的线性表变为长度为n+1的线性表 (a1,a2,ai-1,ai,an,a1,a2,ai-1,x,ai,an,程序: Status ListInsert_sq(SqList,顺序表插入的演示,实现步骤: 将第i +1至第n 位的元素向前移动一个位置; 表长减1。 注意:事先需要判断,删除位置i 是否合法,3)删除 删除线性表的第i个位置上的元素,使:长度为n的线性表变为长度为n-1的线性表。(a1,a2,ai-1,ai,ai+1,an,a1,a2,ai-1,ai+1,

6、an,Status ListDelete_sq(Sqlist,顺序表删除的演示,删除顺序表中某个指定的元素的代码和示意图如下,4) 顺序表的合并,参见例【2-2,2.2.3 顺序表的运算效率分析,时间效率分析: 插入算法花费的时间,主要在于循环中元素的后移。但是,插入的位置是不固定的,当插入位置i=1时,全部元素都得移动,需n次移动,当i=n时,不需移动元素,故在i位置插入时移动次数为n-i+1,删除算法花费的时间,主要在于循环中元素的前移.但是,删除的位置是不固定的,当删除位置i=1时,全部元素都得移动,需n-1次移动,当i=n时,不需移动元素,故在i位置删除时移动次数为n-i-1,假定在表

7、中任意位置插入、删除元素都是等概率的, 插入概率p(i)=1/(n+1) ,删除概率q(i)=1/n ,则,插入操作时间效率(平均移动次数,删除操作时间效率(平均移动次数,显然,顺序表的空间复杂度S(n)=O(1) (没有占用辅助空间,本节小结,线性表顺序存储结构特点:逻辑关系上相邻的两个元素在物理存储位置上也相邻; 优点:可以随机存取表中任一元素O(1);存储空间使用紧凑 缺点:在插入,删除某一元素时,需要移动大量元素O(n);预先分配空间需按最大空间分配,利用不充分;表容量难以扩充 为克服这一缺点,我们引入另一种存储形式,链式存储结构,作业&实验:表的应用,一、实验目的:掌握线性表的基本结构和操作方法,培养学生灵活使用结构解决实际问题的能力。 二、实验内容: 一条记录有学号和成绩两个数据项,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论