链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是并不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针(Pointer)。 单链表(单向链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始,如下图所示。
本文将结合代码详解C语言链表,单向链表的数据结构可以分为两部分:数据域和指针域,数据域存储数据,指针域指向下一个储存节点的地址,C语言详细代码及注释如下。
源码展示:
#include <stdio.h>
//节点类型
struct Node{
int n; //数据
struct Node* pNext; //连接
};
//创建节点
struct Node* CreateNode(int n);
//增加节点
//头插法 新增节点 是第一个节点 把哪个节点插入到哪个链表中
void insertToHead(int n, struct Node** list);
//尾插法 新增节点 是最后一个节点
void insertToTail(int n, struct Node** list);
//中间插入 新增节点 是第N个节点
void insertToNum(int n, struct Node** list,int num);
//找链表中第num个节点,找到返回其地址,找不到返回NULL
struct Node* findPos(struct Node* list,