数据结构中二叉树的中序、后序和前序遍历的时间复杂度是多少?是 O(n) 还是 O(log n) 或 O(n^2)??

最佳答案

中序、前序和后序遍历是深度优先遍历。

对于图,深度优先遍历的复杂度为 O(n + m),其中 n 是节点数,m 是边数。

由于二叉树也是图,所以这里同样适用。
每个深度优先遍历的复杂度都是 O(n+m)。

由于在二叉树的情况下可以源自节点的边数限制为 2,因此二叉树中的最大边总数为 n-1,其中 n 是节点总数。

然后复杂度变为 O(n + n-1),也就是 O(n)。

关于time-complexity - 二叉树遍历的复杂性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4547012/

10-14 15:38