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");
}
相关推荐
1024奇点几秒前
【仓颉语言入门 · 第二篇 第 8 课】
开发语言·数据库·ide·mysql·开源
gopher951115 分钟前
RUST:序列化与反序列化 serde + derive 详解
开发语言·后端·rust
H.莓飛38 分钟前
【Linux】自主 Shell
linux·运维·服务器·c语言·开发语言·visual studio
熊猫钓鱼>_>41 分钟前
Kotlin Multiplatform for OpenHarmony 实战:kotlinx-coroutines 结构化并发适配
开发语言·kotlin·agent·harmonyos·openharmony·适配·华为云码道
沫璃染墨1 小时前
《Qt从零入门系列(十四):QThread多线程详解——从线程创建到客户端阻塞处理》
开发语言·c++·笔记·qt·ui·交互·线程
hixiong1231 小时前
C# 使用 ZXingCpp.Angle 进行条码、二维码识别
开发语言·c#·扫码
云和数据.ChenGuang1 小时前
AI 工程师相关就业岗位(细分,偏工程落地,由底层到上层)
服务器·开发语言·人工智能·python
爱读书的小胖1 小时前
Codewars:Last digit of a large number(C)解题分析
c语言·开发语言·r语言
码途行者2 小时前
处理超时未支付订单:两套轻量化方案,附 PHP 极简实现
开发语言·redis·php
云和数据.ChenGuang2 小时前
LangChain 实战指南:从入门到构建智能应用
开发语言·人工智能·python·langchain