--- title: static_linked_list date: 2021-03-07 21:59:47 permalink: /pages/5de3a5/ categories: - DataStructure - linear_table tags: - --- ## 静态链表 > 借助数组来描述线性表的链式存储结构,结点元素同样存在数据域`data`和指针域`next` 注意: 和普通的链表的指针域不同的是,静态链表的指针是结点元素的相对地址(数组下标),也称为`游标`,建议结合高级语言中数组的概念来理解; **与顺序表一样,虽然静态链表属于链表,但是存储时需要预先分配一块连续的内存空间** 静态链表结构类型: ```C++ // 定义静态链表的最大长度 # define MaxSize 50 typedef struct{ ElemType data; // 存储数据元素,数据域 int next; // 下个元素的相对地址,数组下标 }SLinkList[MaxSize]; ``` 很显然,静态链表是通过`数组游标`来访问下一个结点元素,可以和`指针域`的相关概念结合理解; - 静态链表以`next=-1`作为结束的标志【尾结点】 - 和动态链表相同,**插入、删除操作不需要移动元素,只需要修改指针**; - 总体来说,静态链表没有单链表使用方便,需要将整个链表存储在一块连续的内存空间中,内部的存储可以分散,通过指针构成`链`的关系