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);
}
}
출처 : 위키 트리 순회이진 트리의 InOrder 트리 순회의 시간 복잡도 O (n)?
는 O (n)이 될 것 시간의 복잡성인가? 재귀를 사용하면 시간 복잡도가 동일해질까요?
새로운 질문 :TreeA에서 노드를 찾기 위해 TreeA에서 특정 노드를 찾기 위해 위의 코드를 사용하면 TreeA만큼 많은 노드를 갖게됩니다. TreeB를 만드는 복잡성은 O (n^2) 그것은 n 노드이고 각 노드는 O (n) 인 위의 코드를 사용할 것이기 때문에? (검색 및 대부분의 다른 트리 작업과는 대조적으로) 이진 트리의 순회가 모든 트리 노드가 처리해야하기 때문에
예, 트리에서 N 개의 요소를 한 번 치기 때문에 그렇습니다. –
1. 새로운 질문을 별도로 게시하십시오. 2. 정확히 어떻게 TreeB가 만들어지기로되어 있는지 이해하지 못합니다 ... – thkala