C语言基础-单链表

#// 动态创建一个链表:动态申请内存+模块化设计#

什么是链表?

//1.创建链表(创建一个表头,代表整个链表)

结构体指针-----通过(动态内存申请)转变成-----》结构体变量

cpp 复制代码
struct Node* createList(){
	struct Node* headNode = (struct Node*)malloc(sizeof(struct Node));
	// headNode变成结构体变量
	// 变量使用前要初始化
	// headNode->data = 1;
	headNode->next = NULL;
	return headNode;
};

//2.创建节点

cpp 复制代码
struct Node* createNode(int data){
	struct Node* newNode =  (struct Node*)malloc(sizeof(struct Node));
	newNode->data = data;
	newNode->next = NULL;
	return newNode;
};

//3.从头插入节点(从尾部插入、指定位置插入)

cpp 复制代码
// 插入节点(插入函数):参数是:插入那个链表,插入的数据是多少
void insertNodeByHead(struct Node* headNode, int data){
	struct Node* newCode = createNode(data);
	newCode->next = headNode->next; // 为啥顺序反了就不行??
	headNode->next = newCode;
}

//4.删除节点(指定结点删除)

//5.打印遍历节点(测试用)

cpp 复制代码
// 打印遍历节点
void printList(struct Node* headNode) {
	struct Node* pMove = headNode->next;
	while(pMove){
		printf("%d \t",pMove->data);
		pMove = pMove->next;
	}
	printf("链表节点遍历完成\n");
}
相关推荐
SomeB1oody10 分钟前
【RustyML入门】5.2. 分类指标
开发语言·后端·机器学习·rust·教程
ZJU_统一阿萨姆28 分钟前
【推理优化进阶】图编译与运行时:动态形状、CUDA Graph 与内存规划
开发语言·人工智能·语言模型·架构·开源
@呱呱爱学习29 分钟前
C++大成之路_ STL容器_ Vector
开发语言·c++
额额额对了36 分钟前
数据结构:二叉树
c语言·数据结构·算法
码匠许师傅1 小时前
【C++ 面试真题】19. 聊聊 C++ 的迭代器
开发语言·c++·面试
AI情绪识别开源1 小时前
检信ALLEMOTION VibrationAI 2.4.0 12维度情绪识别开源源代码
开发语言·python
Dovis(誓平步青云)1 小时前
DevEco Studio 6.1.1 Windows 安装实录:从下载校验到首次启动
android·开发语言·数据库·人工智能·windows·harmonyos
qeen871 小时前
【数据结构】红黑树的算法原理解析与实现
开发语言·数据结构·c++·算法·红黑树
Logintern092 小时前
什么时候应该用多进程什么时候用多线程呢?
开发语言·python
long3162 小时前
枚举(Enums)
java·开发语言·数据库