Java는 두 갈래 트리의 기본 연산을 실현한다
10210 단어 Java 학습
Java는 두 갈래 트리의 기본 연산을 실현한다
public class BinTree01 {
static int[] array = {1,2,3,4,5,6,7,8,9};
static List nodelist = null;
/* */
public static class Node {
Node leftChirld;
Node rightChirld;
int data;
public Node(int data) {
leftChirld=null;
rightChirld=null;
this.data=data;
}
}
/* */
public static void build() {
nodelist=new LinkedList();
for(int node=0;nodenew Node(array[node]));
}
for(int index=0;index2-1;index++) {
nodelist.get(index).leftChirld = nodelist.get(index*2+1);
nodelist.get(index).rightChirld = nodelist.get(index*2+2);
}
int last = array.length/2-1;
nodelist.get(last).leftChirld = nodelist.get(last*2+1);
/* , */
if (array.length%2==1) {
nodelist.get(last).rightChirld = nodelist.get(last*2+2);
}
}
/* */
public static int getHeight(Node node) {
int treeheight = 0;
int leftheight = 0;
int rightheight = 0;
if (node!=null) {
leftheight = getHeight(node.leftChirld);
rightheight = getHeight(node.rightChirld);
treeheight=leftheight>=rightheight?leftheight+1:rightheight+1;
}
return treeheight;
}
/* */
public static int getLeafCount(Node node) {
int num1;
int num2;
if (node==null) {
return 0;
} else if (node.rightChirld==null && node.leftChirld==null) {
return 1;
} else {
num1=getLeafCount(node.leftChirld);
num2=getLeafCount(node.rightChirld);
return num1+num2;
}
}
/* */
public static int getNodeCount(Node node) {
int num1,num2;
if (node==null) {
return 0;
} else {
num1=getNodeCount(node.leftChirld);
num2=getNodeCount(node.rightChirld);
return num1+num2+1;
}
}
public static void main(String[] args) {
BinTree01 binTree01 = new BinTree01();
binTree01.build();
Node root = nodelist.get(0);
System.out.println(" :");
System.out.println(binTree01.getNodeCount(root));
System.out.println("");
System.out.println(" ");
System.out.println(binTree01.getLeafCount(root));
System.out.println("");
System.out.println(" ");
System.out.println(binTree01.getHeight(root));
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JWT 인증 방식의 실현1, 우선 서버에서 로그인 요청을 받았을 때 요청 헤더에 영패가 있는지 확인합니다(첫 로그인은 반드시 없습니다).서버는 계정 비밀번호가 모두 통과된 것을 검증하는 상황에서 token(즉 영패)을 생성하여 응답 헤더에...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.