静态链表
1.概念: 静态链表是顺序表和链表的结合,在初始化时申请一定大小的空间(等同于定义一定长度的数组),数组元素时结构体的变量,结构体内有两个元素,一是数据,二是游标(相当于链表中的指针),游标保存的是下一个节点的下标。 2.与动态链表的区别: (1)静态链表类似于数组的方法实现的,是顺序存储结构,在物理地址上的连续的,而且需要预先分配空间大小。所以静态链表的初始值一般是固定的,在做插入和删除时不需要移动元素,仅需修改指针。 (2)动态链表是用内存申请函数(malloc/new)动态申请内存的,所以在链表的长度上没有限制。动态链表因为是动态申请内存的,所以每个节点的物理地址不连续,要通过指针来顺序访问。 3.静态链表;
#include <stdio.h>
struct node
{
int num;
struct node *next;
};
int main()
{
struct node stu[3];
struct node *head, *p;
stu[0].num = 10;
stu[1].num = 20;
stu[2].num = 30;
head = &stu[0];
stu[0].next = &stu[1];
stu[1].next = &stu[2];
stu[2].next = NULL;
p = head;
do{
printf("%d\n", p->num);
p = p->next;
} while (p != NULL);
return 0;
}
|