자바에서 트리를 만들 때 몇 가지 의문점이 있습니다. 최대 3 개의 노트와 각 학생의 ID가있는 학생의 데이터를 저장하는 트리를 만들어야합니다. 또한 왼쪽 노트에 노트를 입력해야합니다. 입력 한 것보다 낮은 성적을 가진 모든 학생들과 그 노트에 가장 적합한 노드를 보여줘야합니다. 누군가 나를 도울 수 있니? 내가 학생 및 노드의 구조를 가지고 있지만 까다로운 조금 학생들구조체 java 트리 데이터
학생
public class Alumno {
private String rut;
private String[] notas;
public Alumno(String rut, String[] notas) {
this.rut = rut;
this.notas = notas;
}
public Alumno(){
}
public String getRut() {
return rut;
}
public void setRut(String rut) {
this.rut = rut;
}
public String[] getNotas() {
return notas;
}
public void setNotas(String[] notas) {
this.notas = notas;
}
@Override
public String toString() {
return "Alumno{" + "rut=" + rut + ", notas=" + notas + '}';
}
}
노드
public class Nodo {
private Alumno dato;
private Nodo izquierdo;
private Nodo derecho;
public Nodo(Alumno dato){
this.dato = dato;
}
public Nodo getNodoIzquierdo(){
return izquierdo;
}
public Nodo getNodoDerecho(){
return derecho;
}
public void setNodoIzquierdo(Nodo nodo){
izquierdo = nodo;
}
public void setNodoDerecho(Nodo nodo){
derecho = nodo;
}
}
분명히하려면 이진 나무 개념이 필요하지만 커리큘럼의 일부로 해결할 수있는 문제를 직접 해결할 방법을 요구하는 경우에는 문제가되지 않습니다. 개념에 대한 질문을 통해 명확하지 않은 개념적 부분을 분석하고 명확성을 얻으십시오. – Ironluca
@Ironluca 어쩌면 당신이 잘못 생각한 것일 수도 있습니다. 특정 클래스 (이 경우 학생)에 데이터를 입력 할 수 있는지 알고 싶었습니다. 학생 – NHTorres
좋습니다.이 힌트는 바이너리 트리에 루트 노드가 있습니다. 대부분 루트 노드가 있습니다. 중간 값. B- 트리의 모든 레벨에는 정확하게 두 개의 노드가 있습니다. 일반적으로 왼쪽 노드는 부모 노드보다 값이 작고 오른쪽 노드는 부모 노드보다 값이 큽니다. 기본 아이디어는 최대한 빨리 값을 검색하는 것입니다. 귀하의 경우, 부모 노드는 50- 왼쪽 노드가 0-49이고 오른쪽 노드 50-100이됩니다. 귀하의 경우, 3 과목이 있기 때문에 나무는 추상 노드로 3 개의 이진 나무가됩니다 - 행운을 빕니다 :) – Ironluca