Skip to content

第二章 信息结构

2.1 引论

计算机程序通常都是对一些信息表进行操作。在大多数情况下,这些表并不仅仅是杂乱无章的数值集团;他们含有数据元素之间重要的结构关系。

在最简单的形式下,一个表可以是元素的一个线性表。这是它的有关结构的性质可以包括对诸如下列这样一些问题的答案:

  • 哪个元素是表中的头一个元素?
  • 哪个元素是最后的元素?
  • 那些元素居于给定的一个元素之前和之后?
  • 在这种表中有多少个元素?

在更复杂的情况下,表可以是一个二维的数组,或者是具有更高 n 值的 n 维数组;它可以是一个树结构,表示层次或分支关系;或者是复杂的具有大量交互联系的多重链接结构,如同在人的大脑中我们可以找到的那样。

为了合理地使用计算机,我们需要理解存在于数据内的结构关系,以及在一台计算机内表示和操作这样的结构的基本技术。

2.2 线性表

2.2.1 栈、队列和双端队列

2.2.2 顺序分配

2.2.3 链接分配

2.2.4 循环表

2.2.5 双重链接表

2.2.6 数组和正交表

2.3 树

2.3.1 遍历二叉树

2.3.2 树的二叉树表示

2.3.3 树的其他表示

2.3.4 树的基本数学性质

2.3.5 列表和废料收集

2.4 多重链接结构

2.5 动态存储分配

2.6 历史和文献