이 순회 방법에서는 루트 노드가 마지막으로 방문되므로 이름이 지정됩니다. 먼저 왼쪽 하위 트리, 오른쪽 하위 트리, 마지막으로 루트 노드를 순회합니다.
우리는 A,에서 시작합니다. Post-order traversal 다음에는 먼저 왼쪽 하위 트리B를 방문합니다. 나 또한 주문 후 순회됩니다. 모든 노드를 방문할 때까지 프로세스가 계속됩니다. 이 트리의 후위 순회 출력은 -
D → E → B → F → G → C → A
이것이 우리가 구현할 알고리즘입니다 -
- 왼쪽 하위 트리를 재귀적으로 순회
- 오른쪽 하위 트리를 재귀적으로 순회
- 노드 데이터 인쇄
클래스에서 구현하는 방법을 살펴보겠습니다.
postOrder() { postOrderHelper(this.root); }
도우미 기능 -
예시
function postOrderHelper(root) { if (root !== null) { postOrderHelper(root.left); postOrderHelper(root.right); console.log(root.data); } }
−
를 사용하여 이것을 테스트할 수 있습니다.예시
let BST = new BinarySearchTree(); BST.insertRec(10); BST.insertRec(15); BST.insertRec(5); BST.insertRec(50); BST.insertRec(3); BST.insertRec(7); BST.insertRec(12); BST.postOrder();
출력
이것은 출력을 줄 것입니다 -
3 7 5 12 50 15 10