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");
}
相关推荐
HZZD_HZZD7 小时前
DL/T 645-2026新国标深度解读与智能电表协议适配实战:从帧结构变化到Java采集器升级的全链路改造方案
java·开发语言
多加点辣也没关系9 小时前
JavaScript|第4章:类型转换
开发语言·javascript
聪慧的水蜜桃9 小时前
【YFIOs】用C#开发硬件之设备上云
开发语言·c#
yqcoder9 小时前
httpOnly 是什么,又有什么用?
开发语言·前端·javascript
山登绝顶我为峰 3(^v^)39 小时前
C/C++ 交叉编译方法
java·c语言·c++
wuqingshun31415910 小时前
重写equals而不重写hashCode,会出什么问题?
java·开发语言
飞猪~10 小时前
LangChain python 版本 第一集
开发语言·python·langchain
李燚12 小时前
Go 项目怎么组织:DDD 4 层 vs MVC vs 脚本式
开发语言·golang·mvc·ddd·agent框架·eino
2zcode13 小时前
免费开源项目文档:基于MATLAB图像处理的啤酒瓶口缺陷检测系统设计与实现
开发语言·图像处理·matlab
人工智能时代 准备好了吗13 小时前
AI回答内容进入率监测:引用识别、文本匹配与语义判断
开发语言·人工智能·python