#include <stdio.h>
#include <stdlib.h>
const int maxSize = 10;
//静态链表最大长度
struct Node
{
int data; //数据域
int cur; //游标
};
typedef struct Node staticList;//起别名
//从备用链表摘下一个结点,分配空间
int malloc_list(staticList *array)
{
//找到备用链表的第一个结点,i是array[0]的下一结点的数组下标
int i = array[0].cur;
//总是从头部拿走array[0]的下一结点,此节点被征用
if(array[0].cur)
array[0].cur = array[i].cur;
//如果没有多余结点可以申请,打印说明并退出
if(i == 0)
{
printf("没有多于的结点可以申请\n");
exit(1);
}
//返回申请结点的数组下标
return i;
}
//创建备用链表
void create_spare_list(staticList *array)
{
int i;
int lencur = maxSize - 1;
//把备用链表串起来,直到倒数第二个结点
for(i = 0; i < lencur; ++i)
array[i].cur = i + 1;
//最后一个结点的下一个结点就是表头
array[maxSize - 1].cur = 0;
}
//初始化静态链表
int initialize_list(staticList *array)
{
create_spare_list(array)
静态链表的定义以及基本操作 超详细!
最新推荐文章于 2023-11-04 20:00:22 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)