静态链表

静态链表的定义

数组的方式实现的链表

  • 优点:增删操作不需要移动大量数据
  • 缺点:不能做到随机存取;容量固定
  • 适用场景:
    • 不支持指针的低级语言
    • 数据元素数量固定不变的场景(如操作系统的文件分配表FAT)
      1
      2
      3
      4
      5
      6
      7
      8
      #define MAXSIZE 100
      typedef struct Node{
      int data;
      int next;
      }
      void TestSLinkList(){
      struct Node a[MAXSIZE];
      }
      另一种写法
      1
      2
      3
      4
      5
      6
      7
      8
      #define MAXSIZE 100
      typedef struct Node{
      int data;
      int next;
      }SLinkList[MAXSIZE];
      void TestSLinkList(){
      SLinkList a;
      }

静态链表的初始化

将头结点的next修改为-1,将空结点的next修改为-2

静态链表的查找

从头结点开始挨个查找

静态链表的插入

插入位序为i的位置

  1. 找到空的结点,存入新的数据
  2. 找到第i-1的结点
  3. 修改第i个结点的next值
  4. 修改第i-1个结点的next值

静态链表的删除

  1. 从头结点开始挨个寻找前驱结点
  2. 修改前驱节点的next值
  3. 修改被删除结点的next值为-2

知识总览