레벨 3: 이진 트리 구현의 사후 순회
200
- 임무 요구 사항
- 참조 답변
- 댓글 40
미션 세부 정보
이 수준의 작업: 이진 연결 목록에 저장된 이진 트리의 사후 순회 알고리즘을 구현합니다.
관련 정보
이진 트리에 대한 기본 지식은 이전 수준을 참조하십시오.
이진 트리의 사후 순회
후위 순회는 이진 트리를 순회할 때 먼저 노드의 왼쪽 하위 트리와 오른쪽 하위 트리를 재귀적으로 인쇄하고 마지막으로 노드를 인쇄하는 것을 의미합니다. 아래 이미지의 경우:
사후 순회 결과는 다음과 같습니다 0 5 4 6 7 3
.
순회 다이어그램은 다음과 같습니다.
후위 순회의 재귀 알고리즘은 다음과 같이 표현될 수 있습니다: 이진 트리가 비어 있지 않으면 (1) 왼쪽 하위 트리를 순회하고, (2) 오른쪽 하위 트리를 순회하고, (3) 루트 노드를 방문합니다.
프로그래밍 요구 사항
이 수준의 프로그래밍 작업은 오른쪽에 있는 코드 스니펫의 중간 Begin
부터 중간까지 End
코드를 완성하는 것입니다.구체적인 요구 사항은 다음과 같습니다.
- 완료
postOrder(TreeNode root)
방법은 사후 순회 기능을 실현하고 노드 값을 출력합니다.
자세한 내용은 후속 테스트 샘플을 참조하십시오.
테스트 지침
테스트 과정:
- 플랫폼은 사용자가 완성한 클래스의 개체를 생성하고
BinaryTree
, createTree(int arr[])
개체의 메서드를 호출하고arr
데이터가 포함된 이진 트리를 만들고 루트 노드를 반환합니다.- 객체의 메서드를 호출하고
postOrder(TreeNode root)
후위 순회를 수행하고 노드 값을 출력합니다. - 그런 다음 프로그램의 출력에 따라 프로그램이 올바른지 판단하십시오.
이 수준에 관련된 코드 파일 BinaryTree.java
의 코드 (순서대로 답을 얻을 수 있고 생성하기 쉽지 않으며 보상, 도움 및 지원은 Xinghe로 나아가는 동기입니다)
package step3;
/**
* Created by zengpeng on 2018/2/12.
YJH YJH YJH
*/
public class BinaryTree {
private TreeNode root;//根节点
public BinaryTree() {
root = null;
}
public void postOrder(TreeNode root) {
/********** Begin *********/
if(root==null){
return;
}
postOrder(root.leftChild);//予星河 YJH
postOrder(root.rightChild);
System.out.println(root.item);
/********** End *********/
}
/**
* 以数组arr的数据,依次从上至下,从左至右构建一颗二叉树
*/
public TreeNode createTree(int arr[]) {
TreeNode tmp[] = new TreeNode[arr.length + 1];
for (int k = 1; k <= arr.length; k++) {
TreeNode node = new TreeNode(arr[k - 1]);
tmp[k] = node;
if (k == 1) {
root = node;
} else {
int j = k / 2;
if (k % 2 == 0) {
tmp[j].leftChild = node;
} else {
tmp[j].rightChild = node;
}
}
}
return root;
}
public static class TreeNode {
private TreeNode leftChild;
private TreeNode rightChild;
private int item;
public TreeNode(int item) {
this(null, null, item);
}
public TreeNode(TreeNode leftChild, TreeNode rightChild, int item) {
this.leftChild = leftChild;
this.rightChild = rightChild;
this.item = item;
}
}
}
감사의 글: JAVA 데이터 구조 계몽 교사 Mr. Tao
지원되는 친구 찾아보기(만들기가 쉽지 않음)
Yuewang Building, Fujiang Riverside, Gardening Hill, Tianfu Courtyard Hongyun Technology