社区
C++ 语言
帖子详情
树状数据怎么找出循环
kingstarer
2012-09-24 10:47:09
现在手上有一组描述一个树状结构的数据,形式如下:
节点 父节点(0代表根)
1 0
2 1
3 1
4 2
5 3
6 2
7 5
8 6
======================
现在这组数据里面有一两个出现问题,导致出现循环,想要找出这些数据,不知道怎么处理?
例如,节点7的父节点错写成7,导致自身出现7->7死循环
或者节点2的父节点错写成8,这样会出现2->8->6->2的死循环
怎么找出这些出了错的节点呢? (上面例子中的7和2)
...全文
200
7
打赏
收藏
树状数据怎么找出循环
现在手上有一组描述一个树状结构的数据,形式如下: 节点 父节点(0代表根) 1 0 2 1 3 1 4 2 5 3 6 2 7 5 8 6 ====================== 现在这组数据里面有一两个出现问题,导致出现循环,想要找出这些数据,不知道怎么处理? 例如,节点7的父节点错写成7,导致自身出现7->7死循环 或者节点2的父节点错写成8,这样会出现2->8->6->2的死循环 怎么找出这些出了错的节点呢? (上面例子中的7和2)
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
kingstarer
2014-04-01
打赏
举报
回复
无满意结贴了 感谢各位回复
kingstarer
2012-09-27
打赏
举报
回复
[Quote=引用 5 楼 的回复:]
深度遍历整棵树,每个节点都设一个标志位,初始为假,第一次访问时设为真
正常的深度遍历每个节点只访问一次(退回上一个节点不视为访问)
当访问到某个节点发现它的标志位已经为真时,就可以确定有环存在
[/Quote]
用这个方法不大可行啊 例如节点2的父节点错写成8,这样会出现2->8->6->2的死循环
这个循环是独立于树型的
不过可以改改,初始化标志位为0,访问一次将标志位加1,最后算标志位有没有不是1的
谢谢了
baichi4141
2012-09-25
打赏
举报
回复
深度遍历整棵树,每个节点都设一个标志位,初始为假,第一次访问时设为真
正常的深度遍历每个节点只访问一次(退回上一个节点不视为访问)
当访问到某个节点发现它的标志位已经为真时,就可以确定有环存在
vssvss
2012-09-25
打赏
举报
回复
给你个思路 看样子 可以当成有向图来看 先建立一个有向图 然后判断这个图是否存在环 可以用狄克斯特拉算法 来求解。至于怎么创建图 可以用链表方式来做比较方便点
kingstarer
2012-09-25
打赏
举报
回复
没人关注,顶一下
冷月清晖
2012-09-24
打赏
举报
回复
贴代码吧。
kingstarer
2012-09-24
打赏
举报
回复
没代码啊 是上来请教各位的
js 递归json树实现根据子id查父id的方法分析
对于未知层级的
树状
数据
,用for
循环
是无法实现的,因为不知道要
循环
几层,那么最合适的方法就是用js递归 界面结构: json
数据
: orgTreeData:{ nodeId:19A5B, nodeName:预分析用户:1313.85万人, nodeType:root...
python实现树形打印目录结构
这两天整理
数据
文件的时候发现,一层层的点击文件夹查看很繁琐,于是想写一个工具来递归打印出文件目录的树形结构,网上找了一些资料几乎都是使用的os.walk, 调试了以后发现返回的貌似的是一个“生成器”,只需要for...
计算机网络技术-stp的配置教程
广播风暴是指由一个未知
数据
包或未知
数据
帧被传送到本地网段、由于网络中的
数据
是一个未知
数据
因此会在本网段一直
循环
直至找到目的地、如果没有找到
数据
就会在网络中一直
循环
寻找目的地这样广播风暴就诞生了。...
data-structure:所有关于
数据
结构和算法的信息
分类原始
数据
结构非原始
数据
结构 原始Dillinger使用许多开源项目来正常工作: 诠释漂浮烧焦指针布尔型 非原始线性(顺序) 堆向量大批队列优先队列列表单链表双链表
循环
链表非线性(随机) 树木二进位二进制搜索树...
解决 mysql 树形结构插入
数据
查询死
循环
问题
在项目中,大家可能会遇到这样一个问题,就是当你操作那些具有上下级的树的表的时候,如果是单纯的父子级关系,可能不会碰见这个问题,但是如果这个看起来具有树形结构的表形成闭环的时候,问题就来了,我遇到的结果...
C++ 语言
64,640
社区成员
250,579
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章