【静态链表】
静态链表是借助数组实现的链表,与顺序表相比,其在进行增删操作时不需要移动大量元素,同时,其具有不能随机存取,固定容量不变的特点
可见,静态链表适用于不支持指针的编程语言(如:Lisp)和数据元素固定不变的场景(如:文件分配表FAT)
【结点】
静态链表的每个结点与链表相似,同样分为数据域和指针域,其中:
- 数据域:存储数据
- 指针域:称为游标,利用数组的下标来充当指针
1 | template <typename T> |
【结点地址】
如下图所示,静态链表通常会将数组下标为 $0$ 的位置作为头结点,其数据域为空,指针域设置为存放的第一个数据元素的数组下标,对于链表最末端的数据元素,静态链表会将其指针域设置为 $-1$
同时,对于每个结点来说,其地址为:起始地址+(数据元素大小+游标大小)* 数组下标
以上图为例,假设每个数据元素大小为 $4B$,游标大小为 $4B$,起始地址为 $0x0100$
则对于数组下标为 $3$ 的结点来说,其地址为: