静态链表是用在非 C 语言这种直接申请内存也非面向对象语言的环境,即既不能像 C 语言一样用 malloc() 函数去申请内存,也不能像面向对象一样用对象引用间接申请内存的编程语言。静态链表应用环境并不多,只是参考它的编程思路,并没有多大的实际意义。
静态链表最大的弊端,就是提前申请很大的内存,用来存放数据,并且数据要远远小于申请的空间,也便在增删改查数据时不至于溢出。
本程序并没有写全,如有需要可参考上一篇单链表的内容补全其功能。
一、静态链表实例:
#include<stdio.h>
#define MAXSIZE 1000
#define ElemType int
#define OK 1
#define ERROR 0
#define TRUE 1
#define FALSE 0
typedef int Status;
// Component, StaticLinkList 相当于面向対象的类
typedef struct{
ElemType data;
int cur;
} Component, StaticLinkList[MAXSIZE];
// staticList 相当于面向対象的对象
StaticLinkList staticList;
/*
功能:初始化数据结构
@param StaticLinkList space 结构体类型
@return Status 自定义数据类型
*/
Status InitList(StaticLinkList space)
{
for(int i = 0; i < MAXSIZE - 1; i++)
space[i].cur = i + 1;
space[MAXSIZE - 1].cur = 0;