数据结构讨论的是数据的逻辑结构

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第1章 概论
数据结构讨论的是数据的逻辑结wenku.baidu.com、存储方式 以及相关操作的实现等问题,为学习后续专业课程 打下基础。本章讲述数据结构的基本概念及相关术 语,介绍数据结构、数据类型和抽象数据类型之间 的联系,介绍了算法的特点及算法的时间与空间复 杂性。
1.1数据结构
1.1.1数据结构
随着计算机软、硬件的发展,计算机的应用范 围在不断扩大,计算机所处理的数据的数量也在不 断扩大,计算机所处理的数据已不再是单纯的数值 数据,而更多的是非数值数据。
需要处理的数据并不是杂乱无章的,它们一定 有内在的联系,只有弄清楚它们之间的本质的联系, 才能使用计算机对大量的数据进行有效的处理。
某电信公司的市话用户信息表格如下图所示:
序号
用户名
电话号码
用户住址 街道名 门牌号
00001
万方林 3800235 北京西路 1659
0这00里02序号、吴用金户平名、3电80话06号67 码等北项京称西路为基本2项09,9 它 是有独000立03意义的王最小冬标识单570位01,23而用瑶户湖住大址道称为组19合87 项, 组合项是由一个或多个基本项或组合项组成,是有独立 意义的000标04识单位王,每三一行称570为05一67个结瑶点湖,大每道一个组20合08 项 称为一000个05字段。江 凡 8800129 学府大道 5035
使用计算机处理用户信息表中的数据时,必须弄清楚 下面3个问题:
1 数据的逻辑结构
这些数据之间有什么样的内在联系?
除最前和最后两个结点之外,表中所有其它的结点 都有且仅有一个和它相邻位于它之前的一个结点,也有 且仅有一个和它相邻位于它之后的一个结点,这些就是 用户信息表的逻辑结构。
2 数据的存储结构
数据的存储结构主要有4种。
数据的存储结构主要有4种。
1 顺序存储
顺序存储通常用于存储具有线性结构的数据。将 逻辑上相邻的结点存储在连续存储区域M的相邻的存 储单元中,使得逻辑相邻的结点一定是物理位置相邻。
对于一个数据结构B=(K,R)
其中K={k1,k2,k3,k4,k5,k6,k7,k8,k9}
将用户信息表中的所有结点存入计算机时,就必须 考虑存储结构,使用C语言进行设计时,常见的方式是 用一个结构数组来存储整个用户信息表,每一个数组元 素是一个结构,它对应于用户信息表中的一个结点。数 据在计算机的存储方式称为存储结构。
3 数据的运算集合
数据处理必涉及到相关的运算,在上述用户信息表 中,可以有删除一个用户、增加一个用户和查找某个用 户等操作。应该明确指明这些操作的含义。比如删除操 作,是删除序号为5的用户还是删除用户名为王三的用 户是应该明确定义的,如果需要可以定义两个不同的删 除操作,为一批数据定义的所有运算(或称操作)构成 一个运算(操作)集合。
R={r} r={<k1,k2>,<k2,k3>,<k3,k4>,<k4,k5>,<k5,k6>,<k6,k7>,<k7, k8>,<k8,k9>} 它的顺序存储方式如图所示
2 链式存储
链式存储方式是给每个结点附加一个指针段,一 个结点的指针所指的是该结点的后继的存储地址,因 为一个结点可能有多个后继,所以指针段可以是一个 指针,也可以是一个多个指针。
4 散列存储
散列存储的思想是构造一个从集合K到存储区域M 的一个函数h,该函数的定义域为K,值域为M,K中的 每个结点ki在计算机中的存储地址由h(ki)确定。
1.1.4数据的运算集合
对于一批数据,数据的运算是定义在数据的逻 辑结构之上的,而运算的具体实现就依赖于数据的存 储结构。
例,数据的逻辑结构B=(K,R)
其中 K={k1,k2,k3,k4,k5}
R={r}
R={< k1,k2>,<k2,k3>,<k3,k4>,<k4,k5>} 这是一个线性结构,它的链式存储如图所示。
3 索引存储
在线性结构中,设开始结点的索引号为1,其它结 点的索引号等于其前继结点的索引号加1,则每一个结 点都有唯一的索引号,索引号就是根据结点的索引号 确定该结点的存储地址。
对待处理的数据,只有分析清楚上面3个方面的问 题,才能进行有效的处理!
数据结构就是指按一定的逻辑结构组成的一批数据, 使用某种存储结构将这批数据存储于计算机中,并在 这些数据上定义了一个运算集合。
1.1.2数据的逻辑结构
例数如据,的有逻5辑个结人构,是分数别据记和为数a,b据,c之,d 间,e所,其存中在a是的b逻的辑父关亲, b系是,c的它父可亲以,用c是一d个的二父元亲组,d是e的父亲,如果只讨论他们 之间所存在的父子关系B=,(则K可,以R)用下面的二元组形式化 地予以表达。 来表示,其中K是数据、即结点的有限集合;R是集 合K上关系的有限集合B=,(这K里,的R)关系是从集合K到集 合其K的中关:系K,={这a,b里,c,一d,e般} 只涉及到一个关系的逻辑结构。
1.1.3数据的存储结构
数据的逻辑结构是独立于计算机的,它与数据在 计算机中的存储无关,要对数据进行处理,就必须将 数据存储在计算机中。如果将数据在计算机中无规律 地存储,那么在处理时是非常糟的,是没有用的。试 想一下,如果一本英汉字典中的单词是随意编排的, 这本字典谁会用!
对于一个数据结构B=(K,R),必须建立从结点 集合到计算机某个存储区域M的一个映象,这个映象 要直接或间接地表达结点之间的关系R。数据在计算 机中的存储方式称为数据的存储结构。
R={r}
r={<a, b>,<b,c>, <c, d>,<d,e>}
逻辑结构的图形表示方式,对K中的每个结点ki用一 个方框表示,而结点之间的关系用带箭头的线段表示, 这5人之间的逻辑结构用图形的方式表达如下图 所示。
若ki∈K,kj∈R,<ki ,kj > ∈r,则称ki是kj的相对 于关系r的前驱结点,kj是ki的相对于关系r的后继结点, 因为一般只讨论具有一种关系的逻辑结构,即R={r}, 所以简称ki是kj前驱,kj是ki的后继。如果某个结点没有 前驱结点,称之为开始结点;如果某个结点没有后继 结点,称之为终端结点;既不是开始结点也不是终端 结点的结点称为内部结点。
相关文档
最新文档