数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
即:数据结构就是一个数据元素及其对应的相互之间的关系的集合。
------------------------------------------数据的基本概念----------------------------------
数据:在计算机中是指所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。(即一个结构体就是一个数据元素)
数据项:一个数据元素可以有若干个数据项组成,数据项是数据的不可分割的最小单位。(结构体里的一个变量就是一个数据项)
数据对象:是性质相同的数据元素的集合,是数据的一个子集。例如:整数数据对象N={0,1,2,。。。}。
总而言之:数据是一个大的总称,数据对象是数据元素的分类集合。数据元素是数据的基本单位,一般都以整体处理。而数据项,是数据元素的单位,是数据的不可分割的最小单位。
-----------------------------------关系(结构)的基本概念----------------------
结构:数据元素相互之间的关系。
根据数据元素之间的关系的特性,有下面四种基本结构:
- 集合:结构中的数据元素除了“同属于一个集合”的关系外,别无其他的关系
- 线性结构:结构中的数据元素存在一个对一个的关系。
- 树形结构:结构中的数据元素存在一个对多个关系。
- 图状结构(网状结构):结构中的元素存在多个对多个的关系。
数据的逻辑结构:数据元素之间的逻辑关系。 ------------------不是很懂
------以下是数据结构在计算机中的表示----------
数据的物理结构(存储结构):数据结构在计算机中的表示(又称映象)称为数据的物理结构。
因为数据结构就包括数据元素和其关系所以数据的物理结构包括数据元素的表示和关系的表示。
一、数据的表示
元素(结点):在计算机中数据元素使用位串(若干位组合起来形成一个位串)表示的,通常称这个位串位元素或结点。
(就像大一下学期做的学生成绩管理系统中的structu student{};就是结点。)
数据域:当数据元素是有若干数据项组成的时候,位串中对应于各个数据项的子位串称为数据域。(structu student{};中的每一个变量都是一个数据项,对应一个子位串即数据域。)
因此,元素或结点可看成数据元素在计算机中的映象。
二、关系的表示
数据元素之间的关系在计算机中有两种不同的表示方法:顺序映象和非顺序映象。由此得到两种不同的存储结构:顺序存储结构和链式存储结构。
顺序映象---------->顺序存储结构
非顺序映象--------->链式存储结构
1、顺序映象的特点是借助元素在存储器中的相对位置来表示元素之间的逻辑关系。
2、非顺序映的特点是借助指示元素存储地址的指针表示数据元素之间的逻辑关系。
-----------------------------------------------------------------
数据的逻辑结构和物理结构是密切相关的两个方面,任何一个算法的设计取决于选定的数据(逻辑)结构,而算法的实现依赖于采用存储结构。
即:设计出来算法取决于你对这个问题出项出来的数据的逻辑结构(数据元素指甲是什么结构,集合还是线性结构还是树形结构或者网状结构),因为只要根据他们之间的关系来找出解决文艺的方案,这就是算法的设计取决于选定的逻辑结构。
而算法的实现即把算法变成程序需要考虑在数据元素和数据元素之间的关系在计算机怎么存储,这就是算法的实现依赖于采用的存储结构。