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