链表的制作:
首先弄一个节点(声明一个结构体,里面由数据域和指针域组成)
数据域写内容,指针域用来指向下一个节点,通过一个节点连一个节点串起来形成一个链表。
链表的每一个节点都需要动态分配内存,并用一个指针保存它的地址。
要完成链表需要利用三个指针,一个头指针(记为a)(保存链表的首个节点的地址),两个其他指针(记为b和c)(c动态分配内存创建节点,b的指针域指向c)。
链表内容的读取:
一个简单的链表代码:
#include
#include
int main() {
//声明一个节点
typedef struct student{
//数据域
int age;
//指针域
struct student*next;
}Student; /**Student为变量别名**/
//创建3个结构体指针,a为头指针
Student*a,*b,*c;
//头指针必须指向首个节点
a = b = (Student*)malloc(sizeof(Student));
//往结构体的数据域中写东西
b->age =9;
for(int i =0;i<3;i++){
//利用c动态分配内存创建新节点
c = (Student*)malloc(sizeof(Student));
//往c的数据域里写东西,将b的指针域指向c,将c这个地址赋值给b用来实现链表的创建
c->age=10+i;b->next = c; b = c;
//执行循环创建链表
}
//将最后一个节点的指针域赋值为NULL
b->next =NULL;
//利用指针是否为空进行循环
while(a !=NULL){
//节点中内容的读取
printf("%d ",a->age);
//将下一个节点地址赋值给a以便读取下一个节点的内容
a = a->next;
}
return 0;
}