链表
链表是一种常见的重要的数据结构,它是动态地进行储存分配的一种结构,链表根据需要开辟一定大小的内存单元,链表具有一个头指针(head),他存放一个地址,该地址指向一个元素,在链表中每一个元素都称之为“结点”,每个结点都包含1:用户所需要存放的数据。 2:下一个结点的地址(存放在next指针中),链表的表尾为空,该元素不在指向下一个元素,链表到此处结束。
例如:定义一个结构体
struct Student
{
int num;
flaot score;
struct Student*next;//next为指针变量,在链表中存放每个结点下一个结点的地址
}
链表各个结点之间的联系如表所示,以此可作为链表使用方法的参考。
静态链表
即简单的讲所有的结点都是在程序中定义的,并非临时开辟,也不能用完释放。
#include<stdio.h>
struct Student
{
int num;
float score;
struct Student*next;
}
int main()
{
struct Student a,b,c,*head,*p1;
a.num=1001;
a.score=99;
b.num=1002;
b.score=98;
c.num=1003;
c.score=97;//对结点a,b,c的成员赋值
head=&a