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");
}
相关推荐
niucloud-admin2 小时前
JAVA V6 多商户商城 开发文档——插件安装
java·开发语言
测试员周周2 小时前
【免费福利】AI测试:测试技能包进阶:造数、压测、视觉回归、CI 全流程串联
开发语言·人工智能·python·功能测试·测试工具·ci/cd·测试用例
诙_2 小时前
深入理解C++文件操作
开发语言·c++
Byron Loong2 小时前
【基础】c,c++编译过程
c语言·c++
l1t2 小时前
DeepSeek辅助编写埃拉托斯特尼筛法和Atkin筛法求质数程序比较
开发语言·人工智能·python
Hesionberger3 小时前
LeetCode79:单词搜索DFS回溯详解
java·开发语言·c++·python·算法·leetcode·c#
skywalk81633 小时前
下载安装 Temurin® JDK JDK 21 - LTS 速度很慢,有办法加速吗?
java·开发语言
Kiling_07043 小时前
Java方法引用与排序算法精讲
开发语言·python
xyq20243 小时前
AppML 案例未来:探索移动应用机器学习的新篇章
开发语言