数据结构-整理版

上传人:博****1 文档编号:512057532 上传时间:2024-01-24 格式:DOCX 页数:4 大小:15.61KB
返回 下载 相关 举报
数据结构-整理版_第1页
第1页 / 共4页
数据结构-整理版_第2页
第2页 / 共4页
数据结构-整理版_第3页
第3页 / 共4页
数据结构-整理版_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《数据结构-整理版》由会员分享,可在线阅读,更多相关《数据结构-整理版(4页珍藏版)》请在金锄头文库上搜索。

1、数据结构(计算机存储、组织数据方式)基本简介数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。数据结构往往同高效的检索算法和索引技术有 关。数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成。记为:Data_Structure=(D,R)其中D是数据元素的集合,R是该集合中所有元素之间的关系的有限集合。研究对象、数据的逻辑结构:指反映数据元素之间的逻辑关系的数据结构,其中的逻辑关系是指数据元素之间的前后件关系,而与他们在计算机中的存储位置无关。逻

2、辑结构包括:1.集合2.线性结构3.树形结构4.图形结构二、数据的物理结构:指数据的逻辑结构在计算机存储空间的存放形式。三、数据结构的运算。结构分类数据结构是指同一数据元素类中各数据元素之间存在的关系。数据结构分别为逻辑结构、存储结构(物理结构) 和数据的运算。数据的逻辑结构是对数据之间关系的描述,有时就把逻辑结构简称为数据结构。逻辑结构形式地定义 为(K, R)(或(D, S),其中,K是数据元素的有限集,R是K上的关系的有限集。根据数据元素间关系的不同特性,通常有下列四类基本的结构:集合结构。该结构的数据元素间的关系是“属于同一个集合”线性结构。该结构的数据元素之间存在着一对一的关系。树型

3、结构。该结构的数据元素之间存在着一对多的关系。图形结构。该结构的数据元素之间存在着多对多的关系,也称网状结构。从上面所介绍的数据结构的概念中可以知道,一个数据结构有两个要素。一个是数据元素的集合,另一个是关系 的集合。数据结构在计算机中的表示(映像)称为数据的物理(存储)结构。它包括数据元素的表示和关系的表示。数据 元素之间的关系有两种不同的表示方法:顺序映象和非顺序映象,并由此得到两种不同的存储结构:顺序存储结构和 链式存储结构。顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻 接关系来体现,由此得到的存储表示称为顺序存储结构。顺序存储结构是

4、一种最基本的存储表示方法,通常借助于程 序设计语言中的数组来实现。链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示的。 由此得到的存储表示称为链式存储结构,链式存储结构通常借助于程序设计语言中的指针类型来实现索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。数据结构中,逻辑上(逻辑结构:数据元素之间的逻辑关系)可以把数据结构分成线性结构和非线性结构。线性 结构的顺序存储结构是一种顺序存取的存储结构,线性表的链式存储结构是一种随机存取的存储结构。结构算法算法的设计取

5、决于数据(逻辑)结构,而算法的实现依赖于采用的存储结构。数据的存储结构实质上是它的逻辑 结构在计算机存储器中的实现,为了全面的反映一个数据的逻辑结构,它在存储器中的映象包括两方面内容,即数据 元素之间的信息和数据元素之间的关系。不同数据结构有其相应的若干运算。数据的运算是在数据的逻辑结构上定义 的操作算法,如检索、插入、删除、更新和排序等。数据的运算是数据结构的一个重要方面,讨论任一种数据结构时都离不开对该结构上的数据运算及其实现算法的 讨论。数据结构不同于数据类型,也不同于数据对象,它不仅要描述数据类型的数据对象,而且要描述数据对象各元素 之间的相互关系。数据类型是一个值的集合和定义在这个值

6、集上的一组操作的总称。数据类型可分为两类:原子类型、结构类型。 一方面,在程序设计语言中,每一个数据都属于某种数据类型。类型明显或隐含地规定了数据的取值范围、存储方式 以及允许进行的运算。可以认为,数据类型是在程序设计中已经实现了的数据结构。另一方面,在程序设计过程中, 当需要引入某种新的数据结构时,总是借助编程语言所提供的数据类型来描述数据的存储结构。计算机中表示数据的最小单位是二进制数的一位,叫做位。我们用一个由若干位组合起来形成的一个位串表示一 个数据元素,通常称这个位串为元素或结点。当数据元素由若干数据项组成时,位串中对应于各个数据项的子位串称 为数据域。元素或结点可看成是数据元素在计

7、算机中的映象。一个软件系统框架应建立在数据之上,而不是建立在操作之上。一个含抽象数据类型的软件模块应包含定义、表 示、实现三个部分。对每一个数据结构而言,必定存在与它密切相关的一组操作。若操作的种类和数目不同,即使逻辑结构相同,数 据结构能起的作用也不同。不同的数据结构其操作集不同,但下列操作必不可缺:1, 结构的生成;2, 结构的销毁;3, 在结构中查找满足规定条件的数据元素;4, 在结构中插入新的数据元素;5栅U除结构中已经存在的数据元素;6,遍历。抽象数据类型:一个数学模型以及定义在该模型上的一组操作。抽象数据类型实际上就是对该数据结构的定义。 因为它定义了一个数据的逻辑结构以及在此结构

8、上的一组算法。抽象数据类型可用以下三元组表示:(D, S,P)。D 是数据对象,S是D上的关系集,P是对D的基本操作集。ADT的定义为:ADT抽象数据类型名:数据对象:(数据元素集合),数据关系:(数据关系二元组结合),基本操作:(操作函数 的罗列); ADT抽象数据类型名;抽象数据类型有两个重要特性:数据抽象用ADT描述程序处理的实体时,强调的是其本质的特征、其所能完成的功能以及它和外部用户的接口(即外界使 用它的方法)。数据封装将实体的外部特性和其内部实现细节分离,并且对外部用户隐藏其内部实现细节。数据(Data)是信息的载体,它能够被计算机识别、存储和加工处理。它是计算机程序加工的原料,

9、应用程序处 理各种各样的数据。计算机科学中,所谓数据就是计算机加工处理的对象,它可以是数值数据,也可以是非数值数据。 数值数据是一些整数、实数或复数,主要用于工程计算、科学计算和商务处理等;非数值数据包括字符、文字、图形、 图像、语音等。数据元素Data Element)是数据的基本单位。在不同的条件下,数据元素又可称为元素、结点、顶点、 记录等。例如,学生信息检索系统中学生信息表中的一个记录等,都被称为一个数据元素。有时,一个数据元素可由若干个数据项(Data Item)组成,例如,学籍管理系统中学生信息表的每一个数据元素 就是一个学生记录。它包括学生的学号、姓名、性别、籍贯、出生年月、成绩

10、等数据项。这些数据项可以分为两种: 一种叫做初等项,如学生的性别、籍贯等,这些数据项是在数据处理时不能再分割的最小单位;另一种叫做组合项, 如学生的成绩,它可以再划分为数学、物理、化学等更小的项。通常,在解决实际应用问题时是把每个学生记录当作 一个基本单位进行访问和处理的。数据对象(Data Object)或数据元素类(Data Element Class)是具有相同性质的数据元素的集合。在某个具体问题 中,数据元素都具有相同的性质(元素值不一定相等),属于同一数据对象(数据元素类),数据元素是数据元素类的 一个实例。例如,在交通咨询系统的交通网中,所有的顶点是一个数据元素类,顶点A和顶点B各

11、自代表一个城市, 是该数据元素类中的两个实例,其数据元素的值分别为A和B。数据结构(Data Structure)是指互相之间存在着一种 或多种关系的数据元素的集合。在任何问题中,数据元素之间都不会是孤立的,在它们之间都存在着这样或那样的关 系,这种数据元素之间的关系称为结构。常用结构数组(Array)在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来。这些按序排列的同类数据元 素的集合称为数组。在C语言中,数组属于构造数据类型。一个数组可以分解为多个数组元素,这些数组元素可以是 基本数据类型或是构造类型。因此按数组元素的类型不同,数组又可分为数值数组、字符数组、指针数组

12、、结构数组 等各种类别。栈(Stack)是只能在某一端插入和删除的特殊线性表。它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的 数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。队列(Queue)一种特殊的线性表,它只允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作。进行插入 操作的端称为队尾,进行删除操作的端称为队头。队列是按照“先进先出”或“后进后出”的原则组织数据的。队列 中没有元素时,称为空队列。链表(Linked List)是一种物理存储单元上非连续、非顺序的存储结构,它既可以表示线性结构,也可以用于表示非线性结构

13、,数据 元素的逻辑顺序是通过链表中的指针链接次序实现的。链表由一系列结点(链表中每一个元素称为结点)组成,结点 可以在运行时动态生成。每个结点包括两个部分:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指 针域。树(Tree)是包含n (n0)个结点的有穷集合K,且在K中定义了一个关系N, N满足以下条件:(1)有且仅有一个结点K0,他对于关系N来说没有前驱,称K0为树的根结点。简称为根(root)。(2)除K0外,K中的每个结点,对于关系N来说有且仅有一个前驱。(3) K中各结点,对关系N来说可以有m个后继(m=0)。图(Graph)图是由结点的有穷集合V和边的集合E组成。其中,为了与树形结构加以区别,在图结构中常常将结点称为顶点, 边是顶点的有序偶对,若两个顶点之间存在一条边,就表示这两个顶点具有相邻关系。堆(Heap)在计算机科学中,堆是一种特殊的树形数据结构,每个结点都有一个值。通常我们所说的堆的数据结构,是指二 叉堆。堆的特点是根结点的值最小(或最大),且根结点的两个子树也是一个堆。散列表(Hash)若结构中存在关键字和K相等的记录,则必定在f(K)的存储位置上。由此,不需比较便可直接取得所查记录。称 这个对应关系f为散列函数(Hash function),按这个思想建立的表为散列表。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号