📖
Data Structure
  • 基本概念
  • 线性表
    • 顺序表
    • 链表
    • 广义表
  • 栈
  • 队列
  • 字符串
  • 树
    • 二叉树
    • 二叉搜索树
    • 平衡二叉树
    • 堆
    • 哈夫曼树
  • 图
    • DFS
    • BFS
  • 排序
    • 选择排序
    • 插入排序
    • 比较选择排序和插入排序
    • 希尔排序
  • 常用算法
    • 排序
    • 二叉树遍历
    • 根据两种遍历顺序重构树
    • 二叉树深度
    • 最近公共祖先
    • 回溯集合
    • N Sum
    • union-find
  • 常用算法时间复杂度速查表
由 GitBook 提供支持
在本页
  • 1. 广义表是什么
  • 2. 多重链表

这有帮助吗?

  1. 线性表

广义表

1. 广义表是什么

  • 广义表是 线性表的推广

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

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

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

2. 多重链表

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

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

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

用途:

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

上一页链表下一页栈

最后更新于4年前

这有帮助吗?