什么是数据结构?数据结构 是计算机存储、组织数据的方式,是指数据元素的集合以及数据元素之间存在的一种或者多种关系的集合,元素之间的关系包括数据的逻辑结构、数据的存储结构和数据的运算结构。
数据 是信息的载体,是可以被计算机识别存储并加工处理的描述客观事物的信息符号的总称。数据元素 是数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素由若干个 数据项 组成。数据项是数据结构中讨论的最小单位。有两类数据元素:如果数据元素不能再分,则称为 原子项;如果数据元素由若干个数据项组成,则称为 组合项。
数据结构有两个要素,一个是数据元素的集合,另一个是关系的集合。在形式上,数据结构通常可以采用一个二元组来表示。数据结构按数据元素之间关系的不同,可以分为以下四类基本结构:
- 集合结构。数据元素属于同一个集合。
- 线性结构。数据元素之间存在着一对一的关系。常见的有链表、队列、栈等。
- 树形结构。数据元素之间存在着一对多的关系。常见的有二叉树、二叉查找树、平衡二叉查找树等。
- 图形结构。数据元素之间存在着多对多的关系。
按照存储方式的不同,数据结构可以分为顺序存储结构和链式存储结构:
顺序存储结构,表示数据元素在存储器中是连续存储的,可以用相对位置来表示数据元素之间的逻辑结构,如顺序表、队列、栈等。
链式存储结构,每个数据元素里设置了一个指针用来指向另一个元素的存储地址,以此来表示数据元素之间的逻辑结构。
按照逻辑结构来分,数据结构可以分为线性结构和非线性结构,如果数据元素之间存在一对一的关系,则称为线性结构,否则称为非线性结构。集合结构、树形结构、图形结构都称为非线性结构。
- 线性结构,包括顺序表、链表、队列、栈等;
- 树结构和图结构的入门,包括二叉树、图的存储方式等;
- 查找排序算法,包括哈希表、顺序查找、折半查找、三分查找等查找算法,和插入排序、冒泡排序、归并排序、选择排序和快速排序等排序算法。
- 树结构,包括二叉查找树、平衡二叉查找树、堆与优先队列、森林与并查集等;
- 图结构,包括图的遍历、图的连通性、最短路和最小生成树等算法。
程序= 算法+数据结构
程序设计 = 算法+ 数据结构 + 编程范式
数据结构 = 结构定义 + 结构操作