数据结构的4种存储结构
线性表的顺序存储结构通过连续存储单元来存储数据元素,呈现一对一的关系。在树形结构中,一个节点可能拥有多个孩子,这使得单纯依赖顺序存储难以直观反映节点间的逻辑关系。
为了实现对树的存储,我们引入了多种表示方法。每个节点除了包含数据外,还需要知道其双亲节点的位置,这就是所谓的双亲表示法。在这种方法中,每个节点都有一个指向其双亲节点的指针,从而可以轻松地沿着这个指针找到双亲节点。但要知道一个节点的孩子是谁,就需要遍历整个数组。为此,我们可以增加指向左孩子或右孩子的指针域。
孩子表示法则是通过单链表将每个节点的子节点串联起来,类似于我们常用的Map数据结构。在这种表示法中,我们首先用数组存储每个节点,然后为每个节点建立子节点的链表。这样,我们可以轻松找到某个节点的所有孩子。
还有一种孩子兄弟表示法。这种方法利用两个指针:一个指向第一个孩子,另一个指向右兄弟。这种表示法便于查找某个节点的某个孩子,只需从第一个孩子开始,依次找到其兄弟即可。如果想要找到双亲节点,可以增加一个指向parent的指针域来解决。