一、什么是数据结构
数据结构简单来说就是在计算机上要来处理某种存储、组织数据的方式,计算机中的数据之间不是杂乱 无章的,也不是毫无关系的,相反,数据要进行交互,就需要数据结构来整理归纳。它表现了数据的逻 辑结构和存储结构及其操作。在某种程度上来说,数据结构是算法的衍生产品,它与算法的关系非常密 切,算法将数据结构表述为算法的最终呈现形式,在我看来,这种说法非常准确,要学习算法必须要有 数据结构的知识体系,很简单的算法实现可能都包括复杂的数据结构,换句话说,选择合适的数据结构 可能创造出非常简单易懂但是时间效率非常高的算法。
二、数据结构的基本概念和术语
数据
数据不仅仅包括整型、实型等数值类型,还包括字符及声音、图像、视频等非数值类型。
数据元素
数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。
数据项
一个数据元素可以由若千个数据项组成。 比如人这样的数据元素,可以有眼、耳、鼻、嘴、手、脚这些数据项,也可以有姓名、年龄、性别、出生 地址、联系电话等数据项,具体有哪些数据项,要视你做的系统来决定。 数据项是数据不可分割的最小单位。在数据结构这门课程中,把数据项定义为最小单位,是有助于我们 更好地解决问题。所以,记住了,数据项是数据的最小单位。但真正讨论问题时,数据元素才是数据结 构中建立数据模型的着眼点。就像我们讨论一部电影时, 是讨论这部电影角色这样的“数据元素” ,而不 是针对这个角色的姓名或者年龄这样的“数据项”去研究分析。
数据对象
数据对象是性质相同的数据元素的集合,是数据的子集。 什么叫性质相同呢,是指数据元素具有相同数量和类型的数据项,比如,还是刚才的例子,人都有姓 名、生日、性别等相同的数据项。 既然数据对象是数据的子集,在实际应用中,处理的数据元素通常具有相同性质,在不产生混淆的情况 下,我们都将数据对象简称为数据。
三、数据结构
结构,简单的理解就是关系,比如分子结构,就是说组成分子的原子之间的排列方式。严格点说,结构 是指各个组成部分相互搭配和排列的方式。在现实世界中,不同数据元素之间不是独立的,而是存在特 定的关系,我们将这些关系称为结构。 那数据结构是什么? 数据结构: 是相互之间存在一种或多种特定关系的数据元素的集合。 在计算机中,数据元素并不是孤立、杂乱无序的,而是具有内在联系的数据集合。数据元素之间存在的 一种或多种特定关系,也就是数据的组织形式。 为编写出一个“好” 的程序,必须分析待处理对象的特性及各处理对象之间存在的关系。这也就是研究数 据结构的意义所在。 逻辑结构与物理结构。
集合结构
集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。各个数据元素是“平 等”的,它们的共同属性是“同属于一个集合”。数据结构中的集合关系就类似于数学中的集合.
线性结构
线性结构:线性结构中的数据元素之间是一对一的关系
树形结构
树形结构:树形结构中的数据元素之间存在一种一对多的层次关系
图形结构
图形结构:图形结构的数据元素是多对多的关系
物理结构
物理结构: 是指数据的逻辑结构在计算机中的存储形式 数据是数据元素的集合,那么根据物理结构的定义,实际上就是如何把数据元素存储到计算机的存储器 中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描 述。 数据的存储结构应正确反映数据元素之间的逻辑关系,这才是最为关键的,如何存储数据元素之间的逻 辑关系,是实现物理结构的重点和难点。 数据元素的存储结构形式有两种:顺序存储和链式存储。