作为数据结构的一大难点,静态链表也为我们更好的理解数据结构这门课做了铺垫。记得老师告诉我们,数据结构是操作系统的核心,那静态链表也为我们理解操作系统等方面的工程起了很好的铺垫作用。对于静态链表,我个人的主观感受就是,比双链表要难许多,毕竟是涉及到数据更加基本的存储,静态链表其实更能反映其本质,也更能体现出C语言本身的魅力。
与此同时,静态链表带给我的直观感受是,它其实对于我们程序员来说,具有更强的自我操作性,对于我们来操作数据的时候,可控性更强,不再局限于操作系统了。可以以此实现更多的操作。
在我看来,链表和静态链表之间虽然都是依靠上一个数据存储下一个数据的地址,但是两者还是有区别的:
1.静态链表的地址较为可控,可以自己去操控修改。而普通链表则是要依靠操作系统分配的内存实现。
2.静态链表可以检测空间是否被使用的状态,方便我们去操作空间,并且架构较为清晰。可以说是又两个单链表去组成的,但两个单链表又不是毫无关系,两者可以说是相连的。
下面是我的代码:
#include <stdio.h>
#include <malloc.h>
#define DEFAULT_SIZE 5
typedef struct StaticLinkedNode
{
char data;
int next;
} *NodePtr;
typedef struct StaticLinkedList
{
NodePtr nodes;
int *used;
} *ListPtr;
ListPtr initLinkedList()
{
ListPtr tempPtr = (ListPtr)malloc(sizeof(struct StaticLinkedList));
t