一、概述
1、介绍
程序 = 数据结构 + 算法。简单的说,数据结构就是关系,就是数据元素相互之间存在的一种或多种特定关系的集合。传统上,把数据结构分为逻辑结构和物理结构。
物理结构:数据在计算机中的实际存储形式。
逻辑结构:数据元素之间的逻辑关系。
2、物理结构
根据定义,就是研究如何把数据元素存储到计算机的存储器中。存储器主要是针对内存而言的,像硬盘、软盘、光盘等外部存储器的数据组织通常用文件结构来描述。
物理上,数据元素的存储结构,形式有两种:顺序存储、链式存储。
顺序存储结构:用一组地址连续的存储单元存放数据。比如:数组。
链式存储结构:存放数据的存储单元地址可以不连续,元素节点中存放数据以及指向下一个元素地址的指针。比如:链表。
3、逻辑结构
数据之间存在的逻辑关系,用于表述,或反映现实世界的数据的组织关系。比如,爸爸,妈妈,儿子,兄弟之间的关系,可以用家族树来表示。一般地,数据之间有如下几种关系:集合结构、线性结构、树形结构、图形结构。
集合结构:数据元素除了同属于一个集合外,它们之间没有其他不三不四的关系。
线性结构:数据元素之间是一对一的关系。
树形结构:数据元素之间是一对多的层次关系。
图形结构:数据元素是多对多的关系。
一般地,不讨论集合结构。将逻辑结构又分为线性结构和非线性结构。
线性结构:有两种不同的存储结构,顺序存储结构和链式存储结构,分别对应顺序表和链表。顺序表的体现:数组、栈。链表的体现:链表、队列。
非线性结构:二维数组、多维数组、广义表、树、图。