社区
C++ 语言
帖子详情
dijkstra算法产生的路径树怎么处理
silenci
2016-05-15 11:54:28
dijkstra算法结束后,所有的点都包括在了一个集合里,最短路径的权值也找到了,但是要输出这条路径经过的节点的话,需要处理一下生成的路径树(处理有分支的地方),怎么处理啊,有点蒙
还有就是生成路径树的实现方法是什么,我只知道算法会产生一颗树,但是好像不是一颗二叉树吧(好像是多叉树的样子),怎么生成这棵树我也不会
...全文
102
3
打赏
收藏
dijkstra算法产生的路径树怎么处理
dijkstra算法结束后,所有的点都包括在了一个集合里,最短路径的权值也找到了,但是要输出这条路径经过的节点的话,需要处理一下生成的路径树(处理有分支的地方),怎么处理啊,有点蒙 还有就是生成路径树的实现方法是什么,我只知道算法会产生一颗树,但是好像不是一颗二叉树吧(好像是多叉树的样子),怎么生成这棵树我也不会
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
dustpg
2016-05-15
打赏
举报
回复
原来还有专业术语,我自己称为更新。 可以利用std::push_heap, std::pop_heap进行更新操作。 更新的时候,只需要找到位置(可以遍历,O(n)操作, 可以记录,比较复杂),然后直接std::push_heap就行了
silenci
2016-05-15
打赏
举报
回复
引用 1 楼 dustpg 的回复:
展开某节点时,记录该节点信息做为父节点。生成路径的时候从目标节点顺着 父节点就能回到起点,这条线就是路径线
大神,我还有个问题 dijkstra算法中对节点进行松弛操作的时候 需要改变优先队列中元素的值 但是C++ STL的优先队列不支持改变元素的值 怎么处理这个问题呢 我是使用邻接表的存储形式的
dustpg
2016-05-15
打赏
举报
回复
展开某节点时,记录该节点信息做为父节点。生成路径的时候从目标节点顺着 父节点就能回到起点,这条线就是路径线
图论算法精讲+刷题实战
算法精讲+刷题实战,讲解算法之后,进行刷题实战,详解如何分析问题,设计算法,优化算法和刷题技巧。包括三大模块:图的存储(邻接矩阵、边集数组、邻接表、链式前向星),最短
路径
(Dijkstra、Floyd、Bellman_Ford、SPFA),最小生成
树
(Prim、Kruskal)。
Dijkstra算法
详解(完美图解、趣学算法)
Dijkstra算法
详解
Dijkstra算法
设计
Dijkstra算法
简介
Dijkstra算法
的基本思想Dijkstra贪心策略完美图解伪代码详解完整代码算法解析及优化拓展使用优先队列的完整代码相关题的题解写在最后的话
Dijkstra算法
设计
Dijkstra算法
简介
Dijkstra算法
是解决**单源最短
路径
**问题的**贪心算法** 它先求出长度最短的一条
路径
,再参照该最短
路径
求出长度次短的一条
路径
直到求出从源点到其他各个顶点的最短
路径
。
Dijkstra算法
的基本思想 首先假定源点为u,顶点集合
dijkstra算法
_最短
路径
算法—
Dijkstra算法
详解
介绍对于
dijkstra算法
,很多人可能感觉熟悉而又陌生,可能大部分人比较了解bfs和dfs,而对dijkstra和floyd算法可能知道大概是图论中的某个算法,但是可能不清楚其中的作用和原理,又或许,你曾经感觉它很难,那么,这个时候正适合你重新认识它。Dijkstra能是干啥的?Dijkstra是用来求单源最短
路径
的就拿上图来说,假如直到的
路径
和长度已知,那么可以使用
dijkstra算法
计算南京...
图算法——求最短
路径
(
Dijkstra算法
)
图解
Dijkstra算法
,让你了解
Dijkstra算法
的每一步是怎么进行的
C++ 语言
64,649
社区成员
250,477
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章