背景
if you give someone a program you will frustrate him for a day, if you teach someone how to program you will frustrate him for a lifetime(如果你给了一个人一串代码,你将折磨他一整天;如果你教会他如何编程,你将折磨他一辈子。)
很荣幸,我找到了自己喜爱的事情:”frustrate myself for lifetime.”,最近在准备考研复试,在闲余时间,想着顺便把心心念念的算法过一遍,以下是一些个记录。
数据结构基本概念与术语
- 数据:实质是描述客观事物的符号,是能够被计算机识别并输入给计算机处理的符号集合。
- 数据元素(记录):组成数据的具有一定意义的基本单位。
- 数据项:组成数据元素的最小单位,一个数据可由若干个数据项组成。
- 数据对象:由性质相同数据元素组成的集合,为数据的子集。
- 数据结构:相互之间存在一种或多种特定关系的数据元素的集合。
结构:实质上可以理解为各组成部分相互搭配和排列的方式。
数据结构分类
一,逻辑结构
数据对象中数据元素之间的相互关系。(该结构是面向实际问题而言)
- 集合结构:集合结构中数据元素除了同属于一个集合外无其他关系。

- 线性结构:线性结构中数据元素为一对一的关系。

- 树形结构:树形结构中数据元素存在一对多的关系。

- 图形结构:图形结构中数据元素存在多对多的关系。

二,物理结构
数据的逻辑结构在计算机中的存储方式。
- 顺序存储结构:将数据元素存放到练习的存储单元中。(如线性表)
- 链式存储结构:将数据元素存放在任意的存储单元中,该组存储单元可以连续也可以是非连续的。
通过指针指向下一个存储单元,从而找到相应元素的位置。
