作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
访问链接树的所有节点的最佳方法是什么(所有节点都引用父节点和所有子节点,根节点的父节点为 null),以便在其任何祖先之前都不会访问任何节点?非递归的布朗尼点数。
最佳答案
伪代码:
NodesToVisit = some stack or some list
NodesToVisit.Push(RootNode)
While NodesToVisit.Length > 0
{
CurNode = NodesToVisit.Pop()
For each Child C in CurNode
NodesToVisit.Push(C)
Visit(CurNode) (i.e. do whatever needs to be done)
}
编辑:是否递归?
从技术上讲是正确的,正如 AndreyT 和其他人在这篇博文中指出的那样,这种方法是一种递归算法,由此使用显式管理的堆栈代替CPU 堆栈以及递归发生在 While 循环级别的位置。这就是说,它在一些微妙但重要的方面不同于递归实现本身:
关于algorithm - 走路一棵树, parent 先行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1616332/
我在导航从 Web 服务器上的 KMZ 文件(使用 fetchKml)获取的 KML DOM 时遇到了一些性能问题。我正在使用此处描述和讨论的 gex.dom.walk 方法: https://dev
我是一名优秀的程序员,十分优秀!