第三章 线性表
静态链表
不使用指针的高级语言,也通过一些方法来间接实现指针的某些作用,如:
1. Java等面向对象语言启用了对象引用机制;
2. Basic、Fortran等用数组来代替指针来描述单链表。
数组描述单链表的方法:
1. 数组的元素都是由两个数据域组成,data和cur
2. 数据域data用来存放数据元素,游标cur相当于单链表中的next指针,存放该元素的后继在数组中的下标。
这种用数组描述的链表叫做静态链表。


数组的第一个和最后一个元素作为特殊元素处理,不存数据。
通常把未被使用的数组元素称为备用链表。
数组的第一个元素,即下标为0的元素的cur就存放备用链表的第一个结点的小标;数组的最后一个元素的cur则存放第一个有数值的元素的下标。



静态链表的插入操作

静态链表中要解决的是:如何用静态模拟动态链表结构的存储空间的分配,需要时申请,无用时释放。



静态链表的删除操作




返回元素个数的操作

静态链表的优缺点

总的来说,静态链表其实是为了给没有指针的高级语言设计的一种实现单链表能力的方法。理解一下思想。