单向链表和双向链表的一些基本算法

单向链表头插尾插

单向链表的销毁与反转

反转原理:将头节点与后面的节点分开,然后从第一个节点开始对每个节点使用头插法

冒泡排

选排

链表环:

判断是否有环:弗洛伊德快慢指针(快指针一般是慢指针的2倍,差为自然数增长)检测法,如果快指针在遍历过程中遇到了慢指针,则有环存在

判断环入口:在相遇点,令慢指针回到头节点,然后两个指针以相同的速度移动,再次相遇点即为入口;

链表环好处:1.链表环允许从某个节点开始无限循环访问,这在需要持续遍历数据的场景中非常有用,比如任务调度、游戏循环等。

2.如果链表中有多个节点需要共享相同数据,使用环可以避免创建多个节点,节省内存。

3.对于需要处理持续流入数据的应用,环可以有效地管理数据,避免频繁的内存分配和释放。

相关推荐
Yupureki几秒前
《实战项目-个人在线OJ平台》1.项目简介和演示
c语言·数据结构·c++·sql·算法·性能优化·html5
m0_579393667 分钟前
C++代码混淆与保护
开发语言·c++·算法
qq_148115379 分钟前
C++中的享元模式实战
开发语言·c++·算法
Yzzz-F15 分钟前
Problem - D2 - Codeforces
算法
烟花巷子15 分钟前
C++中的解释器模式
开发语言·c++·算法
暮冬-  Gentle°20 分钟前
C++中的策略模式高级应用
开发语言·c++·算法
2401_8796938722 分钟前
C++中的代理模式高级应用
开发语言·c++·算法
地平线开发者22 分钟前
【地平线J6工具链入门教程】J5到J6算法部署迁移指南
人工智能·算法·自动驾驶·汽车
木井巳26 分钟前
【递归算法】找出所有子集的异或总和再求和
java·算法·leetcode·决策树·深度优先
2501_9249526931 分钟前
C++中的枚举类高级用法
开发语言·c++·算法