广义表

1. 广义表是什么

  • 广义表是 线性表的推广

  • 对于线性表而言,n 个元素都是基本的 单元素

  • 广义表中,这些元素不仅可以是单元素也可以是 另一个广义表

typedef struct GNode* GList;
struct GNode {
    int tag; /* 标志域:0表示结点是单元素,1表示结点是广义表 */
    union { /* 子表指针域SubList与单元素数据域Data复用,即共用存储空间 */
        ElementType Data;
        GList SubList;
    } URegion;
    GList next; /* 指向后继结点 */
};

2. 多重链表

链表中的节点可能同时隶属于多个链

  • 多重链表中结点的 指针域会有多个

  • 但包含两个指针域的链表并不一定是多重链表,比如 双向链表

用途:

  • 基本上如 这样的相对复杂的数据结构都 可以采用多重链表 方式实现存储

最后更新于

这有帮助吗?