1
0
mirror of https://github.com/142vip/408CSFamily.git synced 2026-04-04 02:58:30 +08:00
Files
408CSFamily/docs/DataStructure/linear_table/6.static_linked_list.md
mmdapl 42117a0dd9 init
2022-04-08 00:10:38 +08:00

1.4 KiB
Raw Blame History

静态链表

借助数组来描述线性表的链式存储结构,结点元素同样存在数据域data和指针域next

注意: 和普通的链表的指针域不同的是,静态链表的指针是结点元素的相对地址(数组下标),也称为游标,建议结合高级语言中数组的概念来理解;

与顺序表一样,虽然静态链表属于链表,但是存储时需要预先分配一块连续的内存空间

静态链表结构类型:


// 定义静态链表的最大长度
# define MaxSize 50

typedef struct{
    ElemType data;      // 存储数据元素,数据域
    int next;           // 下个元素的相对地址,数组下标
}SLinkList[MaxSize];

很显然,静态链表是通过数组游标来访问下一个结点元素,可以和指针域的相关概念结合理解;

  • 静态链表以next=-1作为结束的标志【尾结点】
  • 和动态链表相同,插入、删除操作不需要移动元素,只需要修改指针
  • 总体来说,静态链表没有单链表使用方便,需要将整个链表存储在一块连续的内存空间中,内部的存储可以分散,通过指针构成的关系