作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个 k-ary 树,我想使用迭代遍历它。
它是一个场景图,所以每次遇到变换节点时,我都会将其矩阵放在堆栈上,每次遇到网格节点时,都会使用矩阵堆栈对其进行渲染。这两者都必须预先订购。但是当一个变换节点的所有子节点都被处理时,它的矩阵必须从矩阵堆栈中弹出。所以我还需要一个后序操作。
我找到了一些用于迭代后序遍历的算法,但总是用于二叉树并且没有额外的预序操作。
最佳答案
这是未经测试的,因此请谨慎对待。
解决这个问题的基本思路是在第一次遇到节点时将其标记为已访问。然后把所有的 child 都放到栈上。
如果遇到没有子节点的叶节点,可以将其打印/处理并从堆栈中弹出。
当栈上的下一个节点已经被访问时,所有的子节点必须之前已经被处理过,否则栈不会被清除到这一步。我们现在知道对于具有任意数量子节点的中间节点,它可以按后序处理。
关于algorithm - 迭代 k-ary 树前序和后序遍历,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24589134/
序 大家好呀,我是summo,这次来写写我在上班空闲(摸鱼)的时候做的一个小网站的事。去年阿里云不是推出了个活动嘛,2核2G的云服务器一年只要99块钱,懂行的人应该知道这个价格在业界已经是非常良心了
我尝试根据给定的级别顺序(BFS 顺序)构造 BST。我知道这是可能的,但我不知道我该怎么写。问题是我必须使用 BFS 序列。所以,我不能在这里使用递归,我必须迭代地编写我的程序......我发现这有
我是一名优秀的程序员,十分优秀!