数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科。
数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。
数据元素:数据(集合)中的一个“个体”,(组成数据的的有一定意义的)数据及结构中讨论的基本单位(也称为记录)
数据项:数据的不可分割的最A单位。一个数据元素可由若干个数据项组成。
数据类型:在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等
数据对象:是性质相同的元素的集合,是数据的子集。
不同数据元素之间不是独立的,而是存在特定的关系,我们将这些关系成为结构。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。(也就是数据的组织形式)
按照视点的不同,我们把数据结构分为逻辑结构和物理结构。
逻辑结构:数据对象中数据元素之间的相互关系。
在数据结构中,从逻辑上可以将其分为线性结构和非线性结构
集合 结构中的数据元素除了同属于一种类型外,别无其它关系。(集合结构)
线性结构 数据元素之间一对一的关系(线性结构)
树形结构 数据元素之间一对多的层次关系(非线性结构)
图状结构或网状结构 结构中的数据元素之间存在多对多的关系(非线性结构)
物理结构/存储结构:数据在计算机中的表示。物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等。
物理结构是指数据的逻辑结构在计算机中的存储形式。(实际上就是如何把数据元素存储到计算机的存储器中)
数据元素的存储结构形式有两种:顺序存储和链式存储。
1.顺序存储结构
顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。
2.链式存储结构
链式存储结构:是把数据元素存放在任意存储单元里,这组存储单元可以是连续的,也可以是不连续的。(数据元素的关系并不能反应其逻辑关系,因此需要通过一个指针存放数据元素的地址,这样通过地址就可以找到相关联数据元素的位置)
逻辑结构是面向问题的,而物理结构是面向计算机的,其基本目标就是将数据及其逻辑关系存储到计算机的内存中。
数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
在C语言中,按照取值的不同,数据类型可以分为两类:
原子类型:是不可以再分解的基本类型,包括整形、实型、字符型等。
结构类型:由若干个类型组合而成,是可以再分解的。例如,整数型数组是由若干个整型数组组成的
抽象是指抽取出事物具有的普遍性的本质。
它是抽出问题的特征而忽略非本质的细节,是对具体事物的一个概括。抽象是一种思考问题的方式,它隐藏了繁杂的细节,只保留了实现目标所必须实现的信息。
我们对已有的数据进行抽象就有了抽象数据类型。
抽象数据类型(Abstract Data Type,ADT):一个数学模型以及定义在该模型上的一组操作。
抽象数据类型的定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示与实现无关。
(以上内容从《大话数据结构》整理,仅当学习笔记使用)