3
public void iterativePreorder(Node root) {
Stack nodes = new Stack();
nodes.push(root);
Node currentNode;
while (!nodes.isEmpty()) {
currentNode = nodes.pop();
Node right = currentNode.right();
if (right != null) {
nodes.push(right);
}
Node left = currentNode.left();
if (left != null) {
nodes.push(left);
}
System.out.println("Node data: "+currentNode.data);
}
}
來源:維基樹遍歷二叉樹O(n)的InOrder樹遍歷的時間複雜度?
是時間複雜度將是O(N)?如果使用遞歸完成時間複雜度會是相同的嗎?
新問題: 如果我用上面的代碼從TreeA中找到某個節點來創建另一個樹TreeB,它將具有與TreeA一樣多的節點,那麼創建TreeB的複雜度爲O(n^2)因爲它是n個節點,每個節點將使用上面的代碼是O(n)?
是的,因爲你一次擊中了樹中的N個元素。 – 2012-03-11 20:47:45
1.請分別提出新問題。 2.我不明白TreeB應該如何創建...... – thkala 2012-03-11 21:54:31