
上QQ阅读APP看书,第一时间看更新
3.4 说说数据结构
前面已经用程序来处理数据了,隐含地把它们的组合也涉及了,也就是说,要处理的并不是一个数字,也不是单个字符,而是一组数字和字符。这是一种数据之间的组合结构。
可以按照数据之间的关系进行分类,如果一组数据是一个接着一个排着队,即1∶1,可以叫作线性序列,如果它们是一个对应两个或者多个,即1∶N,可以叫这种结构为树,如果它们之间的关系是多对多,即N∶N,可以把这种结构叫作图。
线性序列如下所示。

上图所示并不表示这些数据之间是连续存储的,只是表示它们之间关系的图,每个数据只有一个前置数据和一个后置数据。
树如下图所示。

树中每一个数据有一个前置,但是可能有多个后置。
图如下图所示。

图中每一个数据可能有多个前置和多个后置。
不同的结构适用于不同的问题场景,有不同的操作方式和效率。正确的数据结构选择可以提高算法的效率。在计算机程序设计的过程中,选择适当的数据结构是一项重要工作。许多大型系统的编写经验显示,程序设计的困难程度与最终成果的质量、表现,取决于是否选择了最适合的数据结构。
常见的数据结构如下。
● 数组(Array)。
● 链表(Linked List)。
● 堆栈(Stack)。
● 队列(Queue)。
● 堆(Heap)。
● 散列表(Hash table)。
● 树(Tree)。
● 图(Graph)。