学习笔记-数据结构-线性表(2024-04-24)

embedded/2024/9/23 10:21:51/

对不带头节点的单链表进行就地倒置

函数的处理步骤如下:
初始化三个指针 p、q 和 r。p 用于追踪新链表的最后一个节点,最初设置为 NULL。q 指向当前正在处理的原链表的节点,最初是链表的头节点。r 用于临时保存 q->next,即下一个要处理的节点。
在 while 循环中,遍历原链表。循环的每一次迭代都会处理一个节点,将其从原位置移动到新链表的前端。这通过改变节点的 next 指针实现,使其指向新链表的当前第一个节点 p。
在移动节点之后,p 更新为 q,q 更新为 r,以继续遍历和反转剩余的链表。
当 q 为 NULL 时,意味着已经处理完所有的节点,此时 p 指向新链表的头节点。最后,将链表的头指针 L 更新为 p,完成链表的反转。

typedef struct LNode
{Elemtype data;struct LNode *next;
}LNode,*LinkList;
void reverse(LinkList &L)
{LNode *p = NULL; // p作为新链表的头指针,初始化为NULLLNode *q = L;    // q为旧链表的遍历指针,初始化为L的头节点LNode *r = NULL; // r作为临时指针,用来保存q的下一节点// 遍历旧链表,直到q为NULLwhile(q != NULL){r = q->next;  // 保存q的下一节点,因为改变链表结构后就无法通过q来访问了q->next = p;  // 反转指针,将q的next指向新链表的第一个节点pp = q;        // p向后移动,现在p是新链表的第一个节点q = r;        // q向后移动,q变成下一个待处理的节点}L = p; // 最后将原链表的头指针指向新链表的头节点p,完成反转
}

http://www.ppmy.cn/embedded/22853.html

相关文章

迭代加深算法(IDDFS)在电商商品推荐中的应用方案

在电商平台上应用迭代加深深度优先搜索(IDDFS)算法来探索用户可能感兴趣的商品路径,可以创建一个更加个性化和动态的推荐系统,提供更加个性化和动态的购物体验。 通过利用IDDFS来探索用户可能感兴趣的商品路径。通过限制搜索深度,系统可以逐步展示从用户当前查看的…

ZISUOJ 数据结构--队列及其应用

说明: 基本都是bfs的常见模板题型,思路都很直接,不过后面有两道题很搞心态,它们给的坐标x、y是反的,导致刚开始一直错。题目还是要看仔细,不能先入为主。 题目列表: 问题 A: 围圈报数(完善程序…

特征提取(Feature Extraction)应用场景笔记(二)

让我们以一个交通管理系统为例,说明如何基于统计特征、频域特征和时域特征设计数据表示。 假设我们有大量的交通流量数据,包括车辆的速度、密度、道路拥堵情况等指标。我们的任务是让强化学习代理学习交通流量模式,并根据数据做出智能的交通信…

408计算机组成原理知识点——第五章 中央处理器

文章目录 CPU的功能和基本结构CPU的功能运算器和控制器的功能运算器的基本结构专用数据通路方式CPU内部单总线方式运算器的基本结构 控制器的基本结构CPU的基本结构 指令执行过程指令周期指令周期流程指令周期的数据流取指周期间址周期执行周期中断周期 指令的执行方案 数据通路…

Milvus Cloud 向量数据库Reranker成本比较和使用场景

成本比较:向量检索 v.s. Cross-encoder Reranker v.s. 大模型生成 虽然 Reranker 的使用成本远高于单纯使用向量检索的成本,但它仍然比使用 LLM 为同等数量文档生成答案的成本要低。在 RAG 架构中,Reranker 可以筛选向量搜索的初步结果,丢弃掉与查询相关性低的文档,从而有…

Spark调优-解决job任务运行超时或者慢的问题

1 三个参数各自的作用(都配置在spark-default.conf文件中) 1.1 spark.shuffle.io.connectionTimeout (默认值是120s) 这个参数设置了在 shuffle 过程中,当一个 reduce 任务尝试从 map 任务读取数据时,建立连接的超时时间。如果在这个时间内连接没有成功建立,那么 redu…

python利用urllib和xpath爬取并保存图片

概要 在网络时代,图片是信息传递的重要形式之一,而Python作为一种多用途的编程语言,可以用来编写爬虫从网页上获取图片,并保存到本地。本文将介绍如何使用Python爬虫实现这一功能,并探讨一些进阶技巧。 实现 &#x…

深度学习的炼金术:转化数据为黄金的秘密

深度学习的炼金术:转化数据为黄金的秘密 1 引言 在现代深度学习的壮阔疆域中,数据是王冠上耀眼的宝石,而性能优化则是锻造这顶王冠的炼金术。这份融合了数据和算法魔力的艺术,不仅仅依赖于强大的计算资源和复杂的网络结构&#x…