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");
}
相关推荐
FRing035 分钟前
vue2干货总结7(自定义指令、插槽、单页应用程序、路由的使用(VueRouter))
开发语言·前端·vue.js·vue2
雪落漂泊10 分钟前
C++算法 二分查找篇(上)
开发语言·c++·算法
波力海苔夹心脆6751 小时前
C# WPF 资源字典详解:ResourceDictionary、MergedDictionaries 与自定义控件案例
开发语言·c#·wpf·入门教程·resource·资源字典
不会算法的笨小孩2 小时前
异常的使用以及会出现的问题
开发语言·c++·c++11·异常
Hhy_11074 小时前
《C++深度解构06》手撕 string —— 从底层内存管理到深浅拷贝彻底吃透
c语言·开发语言·c++·学习·visual studio
starzy19904 小时前
深入理解Scala函数定义:从方法到函数的类型跨越
开发语言·scala
starzy19904 小时前
深入理解Scala递归函数:从栈溢出到尾调用优化
开发语言·scala
三*一4 小时前
Mapbox‑GL JS 多边形折点编辑工具:实现原理、功能拆解与踩坑总结
开发语言·javascript·ecmascript
YSL0701244 小时前
C++基础
开发语言·c++
若亦_4 小时前
Java中关于this的三种用法
java·开发语言·intellij-idea