静态链表类似于并查集,静态链表不具有分支结构。
#include <stdio.h> #include <stdlib.h> #define MaxSize 50 // 在一些不支持指针的高级语言中,使用静态链表构建单链表是一种非常巧妙的方法。 // 静态链表以-1作为结束标志。静态链表的修改只需要移动指针,不需要移动数据。静态链表同样是从数组下标0开始存储元素。 typedef struct node{ int data; int next; // 静态链表以整形数据存储数组下标 }SLinkList[MaxSize]; void TraverseL(struct node *L){ int i=0; while(i!=-1){ printf("%d\n",L[i].data); i=L[i].next; } } int main(){ SLinkList L; // 数组名,本来就是地址 L[0].data=1; L[0].next=3; L[1].data=4; L[1].next=1; L[2].data=9; L[2].next=4; L[3].data=3; L[3].next=2; L[4].data=8; L[4].next=-1; // 静态链表以-1作为结束标志 TraverseL(L); return 0; }