Tree 树遍历的时间复杂度是多少?

Tree 树遍历的时间复杂度是多少?,tree,time-complexity,tree-traversal,Tree,Time Complexity,Tree Traversal,树遍历的时间复杂度是多少,我肯定这是显而易见的,但我可怜的大脑现在无法计算出来。对于一棵有n个节点的树,这难道不是n吗 每棵树你都会离开一次,不是吗?所以我认为它是线性的。这取决于您执行的遍历类型和算法,但通常是O(n),其中n是树中的节点总数。深度优先遍历的规范递归实现将以最深层的顺序消耗内存(堆栈上),在平衡树上是log(n)。它是线性编程艺术第1卷第326页Knuth是计算机编程艺术吗?我想给一个朋友举一个很好的例子,对于一棵n元树来说,它是线性的。是的,克努斯的《计算机编程的艺术》对一棵

树遍历的时间复杂度是多少,我肯定这是显而易见的,但我可怜的大脑现在无法计算出来。

对于一棵有n个节点的树,这难道不是n吗


每棵树你都会离开一次,不是吗?所以我认为它是线性的。

这取决于您执行的遍历类型和算法,但通常是O(n),其中n是树中的节点总数。深度优先遍历的规范递归实现将以最深层的顺序消耗内存(堆栈上),在平衡树上是log(n)。

它是线性编程艺术第1卷第326页Knuth是计算机编程艺术吗?我想给一个朋友举一个很好的例子,对于一棵n元树来说,它是线性的。是的,克努斯的《计算机编程的艺术》对一棵n元树来说是这样的吗?我有一个数据结构,它是一个最大深度为4的树,为了遍历它,我的朋友使用3作为循环,并说他的算法在
O(n^3)
时间内运行,但我相信它在
n
时间内运行,
n
是循环中的节点总数tree@Nocholas,你是对的,你的朋友是错的。它是O(n)。我想它应该是有“n个节点”的树,而不是“n个叶子”。@Nanne使用正确的算法,它在时间上确实是线性复杂度(访问每个节点一次),但在空间上可能仍然没有线性复杂度。就像使用堆栈一样。但问题是关于时间复杂性。