网站大量收购独家精品文档,联系QQ:2885784924

第2章-1 顺序表.ppt

  1. 1、本文档共43页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第2章-1 顺序表

Longman 第2章 线性结构 线性结构的逻辑特征 有且仅有一个开始元素:无直接前趋,有且仅有一个直接后继。 有且仅有一个终点元素:无直接后继,有且仅有一个直接前趋。 剩余的元素为内部元素:他们均有且仅有一个直接前趋和直接后继。 线性结构的描述 a1,a2,……,an 其中a1为开始元素, an为终点元素, ai 为内部元素。 2 ? i ? n-1, i 为数据元素的索引号 线性结构的种类 线性表、堆栈、队列、数组、串 2.1 线性表 2.1.1 线性表的逻辑结构 1、线性表(Linear List) 由n(n≧0)个数据元素(结点)a1,a2, …an组成的有限序列。其中数据元素的个数n定义为表的长度。当n=0时称为空表,常常将非空的线性表(n0)记作(a1,a2,……,an) 这里的数据元素 ai (1≦ i ≦ n )只是一个抽象的符号,其具体含义在不同的情况下可以不同。 线性表的逻辑结构 2.1.1 线性表的逻辑结构(续) 例1 26个英文字母组成的字母表 (A,B,C、…、Z) 该字母表是一个线性表,数据元素是英文大写字母,共有26个数据元素。 某校从1998年到2003年各种本科生招生人数的变化情况。 (156,200,286,351,480,580) 数据元素是数字,共有6个数据元素。 例2 分析学生情况登记表 数据元素都是记录; 元素间关系是线性 2、线性表的特点 有限性 线性表是数据元素的一个有限序列。因此线性表的最大表长是一个定值:MaxLength 当前线性表中数据元素的个数n被定义为线性表的长度:Length 当n=0时,线性表是一个空表 线性表的特点 有序性 数据元素的位置取决于元素的序号 位置由序号的线性函数唯一确定 线性表是一种线性结构 均匀性 线性表中的所有数据元素的数据类型是一致的 3、线性表的运算 Init_List()(初始化) Length_List(L)(求表长) Get_List(L,i)(取元素) Locate_List(L,x)(定位) Insert_List(L,i,x)(插入) Delete_List(L,i)(删除) …… 3、线性表的运算 例3 L=(23,56,89,76,18) i=3,x=56,y=88 Length(L)=5 Get(L,i)=89 Locate(L,x)=2 Insert(L,y,i) = (23,56,88,89,76,18) Delete(L,i+1)= (23,56,88,76,18) 4、线性表的分类 按照存储结构划分 顺序存储结构//链式存储结构 顺序存储结构 在内存中开辟一片连续存储空间,但该连续存储空间的大小要大于或等于顺序表的长度,然后让线性表中第一个元素存放在连续存储空间第一个位置,第二个元素紧跟着第一个之后,其余依此类推。 链式存储结构 利用存储单元来存放数据元素值以及他们在内存中的地址,存放的位置和顺序是任意的。 2.1.2 线性表的顺序存储结构--顺序表 1、计算机的内存以及地址 计算机的内存是由有限多个存储单元组成的,每个存储单元都有一个对应的整数地址,存储单元的地址是连续编号的。 2、顺序表的定义 在内存中用地址连续的一块存储空间顺序存放线性表的各元素 3、顺序表的特点 逻辑上相邻的数据元素在物理存储单元的位置也是相邻的。 物理存储单元的邻接关系体现了数据元素的逻辑关系 4、顺序表的存储关系 主要思想:通过内存地址关系来表示数据元素/结点的相对位置 假设线性表中元素为 (a1,a2,….,an),设第一个元素a1的内存地址为LOC(a1) ,而每个元素在计算机内占d个存贮单元,则第i个元素ai的地址为 LOC(ai)=LOC(a1)+(i-1)×d (其中1≤i≤n) 例4 一个一维数组M,下标的范围是0到9,每个数组元素用相邻的5个字节存储。存储器按字节编址,设存储数组元素M[0]的第一个字节的地址是98,则M[3]的第一个字节的地址是 4、顺序表的存储关系 ADR(ai) = ADR(a1) + sizeof(elemtype)*(i-1) 线性表中任意一个数据元素的存取时间在概率上来说都是相等的,它是一个随机存取的线性结构。 5、顺序表的基本运算 定义 #define SeqList struct listtype #define MaxSize 1000 SeqList { elemtype data[MaxSize]; //data[0] int last; //表空时last=-1 };

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档