静态链表是一种较为特殊的链表,这种链表没有指针,所以它可以用于一些没有指针类型的高级语言结构中。
那么静态链表与普通的单链表有什么区别呢?
1,首先,静态链表在分配内存空间时会申请一整片连续空间;
2,其次,静态链表是没有指针的,它使用游标(下一个结点的数组下标)来充当指针。
我们把在初始化时把a[0]的next指向-1,那么我们的可以通过观察游标是否为-1来判断是否以及到达了表尾。同时,我们在初始化时将空闲结点的next设置为-5,这样只要计算机发现一个结点的next值是-5,就可以清楚它是一个空闲结点了。
接下来,我们看看如何用c++代码来初始化一个静态链表:
#includestdio.h
#includestdlib.h
#includemalloc.h
#defineMaxSize10
typedefstruct{
intdata;
intnext;
}SlinkList[MaxSize];
voidtesSlinkList(){
SlinkLista;
}
通过以上的代码我们会发现,静态链表的初始化其实就是申请了一个结构体类型的数组,在其中存储了data与next。
本篇文章到此就结束了,欢迎大家