当前位置:网站首页>Simple description of linked list and simple implementation of code
Simple description of linked list and simple implementation of code
2022-08-05 02:46:00 【Xiao Ben】
3.链表
3.1 链表的概念及结构
概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 ,Like the train below.
in real data structures
注意:
- Nodes in a linked list are logically consecutive,Physically not necessarily continuous
- In reality, nodes are generally applied for from the heap
- The space requested from the heap is allocated according to a certain strategy,physically possible continuous,也可能不连续
3.2 链表的分类
实际中链表的结构非常多样,以下情况组合起来就有8种链表结构:
单向或者双向
带头或者不带头
循环或者非循环
虽然有这么多的链表的结构,但是我们实际中最常用还是两种结构:
无头单向非循环链表:结构简单,一般不会单独用来存数据.实际中更多是作为其他数据结构的子结构,如哈希桶、图的邻接表等等.
带头双向循环链表:结构最复杂,一般用在单独存储数据.实际中使用的链表数据结构,都是带头双向循环链表.另外这个结构虽然结构复杂,但是使用代码实现以后会发现结构会带来很多优势,实现反而简单了,You will know when the next code is implemented.
3.3 链表的实现
typedef int SLTDateType;
typedef struct SLT
{
SLTDateType data;
struct SLT* next;
}SListNode;
// 动态申请一个节点
SListNode* BuySListNode(SLTDateType x);
// 单链表打印
void SListPrint(SListNode* plist);
// 单链表尾插
void SListPushBack(SListNode** pplist, SLTDateType x);
// 单链表的头插
void SListPushFront(SListNode** pplist, SLTDateType x);
// 单链表的尾删
void SListPopBack(SListNode** pplist);
// 单链表头删
void SListPopFront(SListNode** pplist);
// 单链表查找
SListNode* SListFind(SListNode* plist, SLTDateType x);
// 单链表在pos位置之后插入x
// 分析思考为什么不在pos位置之前插入?
void SListInsertAfter(SListNode* pos, SLTDateType x);
// 单链表删除pos位置之后的值
// 分析思考为什么不删除pos位置?
void SListEraseAfter(SListNode* pos);
// 单链表的销毁
void SListDestroy(SListNode* plist);
// 单链表删除pos位置的值
void SListErase(SListNode** plist, SListNode* pos);
The specific content of the function is uploaded togitee
边栏推荐
猜你喜欢
nodeJs--封装路由
Common hardware delays
【C语言】详解栈和队列(定义、销毁、数据的操作)
leetcode 15
Unleashing the engine of technological innovation, Intel joins hands with ecological partners to promote the vigorous development of smart retail
Data to enhance Mixup principle and code reading
OpenGL 工作原理
shell statement to modify txt file or sh file
北斗三号短报文终端露天矿山高边坡监测方案
【LeetCode刷题】-数之和专题(待补充更多题目)
随机推荐
蚁剑高级模块开发
22-07-31周总结
lua学习
语法基础(变量、输入输出、表达式与顺序语句)
Matlab drawing 3
[In-depth study of 4G/5G/6G topic-51]: URLLC-16-"3GPP URLLC related protocols, specifications, and technical principles in-depth interpretation"-11-High reliability technology-2-Link adaptive enhancem
mysql没法Execute 大拿们求解
shell statement to modify txt file or sh file
select tag custom style
Chinese characters to Pinyin
J9 Digital Currency: What is the creator economy of web3?
C语言实现简单猜数字游戏
Likou - preorder traversal, inorder traversal, postorder traversal of binary tree
Access Characteristics of Constructor under Inheritance Relationship
C student management system head to add a student node
1527. 患某种疾病的患者
The design idea of DMicro, the Go microservice development framework
(十一)元类
[Fortune-telling-60]: "The Soldier, the Tricky Way"-2-Interpretation of Sun Tzu's Art of War
程序员的七夕浪漫时刻