第3章 简单数据结构.ppt

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

算法与数据结构 第3章 简单数据结构 简单数据结构 简单的数据结构,包括顺序表、链表、栈、队列和广义表,它们和上一章介绍过的数组和串一起都同属于线性结构。 在线性结构中,数据元素之间的关系是一对一的次序关系,其逻辑特征为: 存在一个惟一地被称作“第一个”的数据元素; 存在一个惟一地被称作“最后一个”的数据元素; 除第一个之外,每个数据元素都只有一个前趋; 除最后一个之外,每个数据元素都只有一个后继。 第3章 简单数据结构 3.1 顺序表 3.1.1 线性表的基本概念 3.1.2 线性表的顺序存储结构——顺序表 3.1.3 顺序表上的基本运算 线性表的基本概念 线性表(Linear List)是一种最简单最常用的数据结构。 一个线性表是由n(n≥0)个相同类型数据元素(结点)组成的有限序列。表中有且仅有一个第一个结点,它没有前趋而只有一个后继;有且仅有一个最后一个结点,它没有后继而只有一个前趋;其余结点都只有一个前趋和一个后继。 根据结点之间的关系可以排成一个线性序列: (a1,a2,a3,a4,……,an) 其中:a1为第一个结点,an为最后一个结点;对于i=2…n,ai-1是ai的前趋,ai是ai-1的后继;n称作线性表的长度,n为0时称作空表。 线性表的例子 线性表中的数据元素(结点)可以是一个数、一个符号、一页书、一个记录等。下面给出线性表的几个例子: (“A”,“B”,……,“Z”)是一个线性表,称作字母表,表中的数据元素都是单个大写字母字符; (3,7,9,12,66,87)是一个线性表,表中的每个数据元素都是一个整数; 学生成绩表也是一个线性表,表中的数据元素为描述一个学生高考情况的一个记录,它由姓名、准考证号、数学、语文、英语、理综、总分七个数据项组成。 线性表的形式化定义 线性表的形式化定义如下: Linear List=(D,R) 其中:D={ai|ai∈Do,i=1,2,……,n,n≥0};R={ai-1,ai|ai-1,ai∈Do,i=2,3,……,n};Do为某个数据对象。 线性表是一种相当灵活的数据结构,其长度可根据需要增减,即对数据元素不仅可以访问,还可进行插入和删除。 线性表的基本运算 置空表setnull(L):将线性表L置为空表。 求长度length(L):计算线性表L中数据元素的个数。 取元素get(L,i):取出线性表L中第i个数据元素;要求i≤length(L)。 取前趋prior(L,x):取出线性表L中值为x的元素的前趋元素;要求x的位序大于1。 取后继next(L,x):取出线性表L中值为x的元素的后继元素;要求x的位序小于length(L)。 定位序locate(L,x):确定元素x在线性表L中的位置,并给出位置序号;若L中无x返回0。 线性表的基本运算(续) 插入insert(L,x,i):在线性表L中第i个位置上插入值为x的新元素,使表长增1;要求1≤i≤length(L)+1。 删除delete(L,i):删除线性表L中的第i个元素,使表长减1;要求1≤i≤length(L)。 利用这些基本运算,可以实现线性表的其它较复杂运算,如线性表的分拆、合并、逆置等。 在实际应用中,当线性表作为一个运算对象时,所需的运算种类不一定相同,不同的运算将构成不同的抽象数据类型。 这里所给出的运算是定义在逻辑结构上的抽象运算,而运算的实现要依赖于所采用的存储结构。 3.1 顺序表 3.1.1 线性表的基本概念 3.1.2 线性表的顺序存储结构——顺序表 3.1.3 顺序表上的基本运算 线性表的顺序存储结构—顺序表 顺序表(sequential list)是用一组地址连续的存储单元依次存放线性表中的各个数据元素,是一种最简单最自然的线性表存储方法。 这组地址连续的存储空间的大小依线性表中的数据元素个数而定,线性表中第一个元素存放在这组空间的开始处,第二个元素紧跟着存放在第一个元素之后,……,余类推。 显然,顺序表中相邻的数据元素在计算机内的存储位置也相邻; 换句话说,顺序表以数据元素在计算机内的物理位置相邻来表示数据元素在线性表中的逻辑相邻关系。 线性表的存储地址计算公式 由于线性表中的数据元素具有相同的类型,所以可以很容易地确定顺序表中每个数据元素在存储空间中与起始单元的相对位置; 假定线性表中每个数据元素需要占用c个存储单元,loc(a1)是第一个数据元素的存储地址(也称作基地址),则第i个数据元素的存储地址可由下式确定: loc(ai)=loc(a1)+(i-1)*c 其中:1≤i≤length(L)+1。 显然,顺序表是一种可随机存取的数据结构。 线性表的顺序存储结构示意图

文档评论(0)

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

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

1亿VIP精品文档

相关文档