链表是实现一个动态存储的数据结构。它不是代码,而是通过代码人为创造一种空间动态分配的方法。
链表在c语言实现的方法是先创建一个头指针,这个头指针存放链表的第一个表。
每个表都有实际数据和指向下一个 表的指针地址。
每个表是不连续分配的系统空间。
在c语言中,先创建一个结构体,结构体定义好需要的数据类型,最后加一个自身的指针
代码如下
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
struct test {
char name[30];
int age;
int student_number;
struct test *next;
};
int main() {
struct test a, b, c, *head, *p;
strcpy(a.name, "zhangsan");
a.age = 16;
a.student_number = 1001;
strcpy(b.name, "lisi");
b.age = 19;
b.student_number = 11102;
strcpy(c.name, "wangwu");
c.age = 18;
c.student_number = 1009;
head = &a;
a.next = &b;
b.next = &c;
c.next = NULL;
p = head;
while (p != NULL) {
printf("姓名:%s\t 年龄:%d\t 学号:%d\n", p->name, p->age, p->student_number);
p = p->next;
}
return 0;
}
在上面代码中,首先定义了一个结构体,结构体里定义了需要的数据类型和一个指针。
在main函数的代码块里
定义了a,b,c三个结构体变量,两个结构体指针head和p
分别对结构体变量a,b,c赋值
head指向第一个结构体变量a的地址
a的结构体变量指向b的地址
b里面的指针指向c的地址
c的指针指向一个NULL
p的地址指向head的内容
在while循环里
如果p的地址不为NULL,
打印指向的结构体变量里的内容
p的地址指向结构体变量里的指针里的地址