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);
}
}
Источник: Wiki Tree Traversal
Будет ли сложность времени O (n)?И будет ли сложность времени такой же, если она была сделана с использованием рекурсии?
Новый вопрос: Если бы мне пришлось использовать приведенный выше код, чтобы найти определенный узел из TreeA, чтобы создать другое дерево TreeB, которое будет иметьстолько же узлов, сколько TreeA, тогда сложность создания TreeB будет равна O (n ^ 2), поскольку это n узлов, и каждый узел будет использовать приведенный выше код O (n)?