代码实现了单链表的增删改查:
#include <stdio.h>
#include <stdlib.h> //malloc函数的头文件
//定义结构体 ,结点
struct Haha{
int val; //数据域
struct Haha *Next; //指针域
};
//创建一个单链表,输入 n,输入 n 个数
struct Haha *Creat(){
struct Haha *head, *pre, *tmp; //pre是 previous的缩写
//定义一个 tmp 指针,定义一个头指针,定义一个pre指针
head = NULL;pre = NULL;tmp = NULL; //tmp 指向 NULL(空) 初始化
int n, x;
scanf("%d", &n); //输入 n,表示有 n 个数
for(int i = 0; i < n; i++){
scanf("%d", &x); //输入 n 个数
//输入一个值就应该创建一个结点,同时用 malloc 函数分配一个内存
tmp = (struct Haha *)malloc(sizeof(struct Haha));
//动态分配内存,tmp去指向,(struct Haha *)表示强制转换
//给 tmp 分配了一个结构体字节大小的内存 ,malloc 是给指针分配内存的
tmp->val = x;
tmp->Next = NULL;
if(i == 0) //判断是否是第一个数,因为head指针始终指向头节点
head = tmp; // head 指针等于 tmp 指针
else //不是第一个数
pre->Next = tmp; //pre的指针指向前一个数的地址
pre = tmp;
}
return h