2014-11-25 2 views
0

У меня есть некоторые сомнения при создании дерева в java, необходимо создать дерево, чтобы сохранить данные студентов с максимум 3 заметками каждый и идентификатор для каждого ученика. Мне также нужно, чтобы вы ввели примечание, в частности, левый узел показал мне всех учеников, у которых есть класс ниже введенного и нужного узла, который больше всего подходит для этой заметки. Кто-то может мне помочь? Я имею структуру студента и узла, но я чувствую себя немного хитрым, чтобы вставить узлы со своими ученикамиСтруктура данных дерева 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; 
} 
} 
+0

Если вам нужна концепция двоичных деревьев, чтобы быть понятной, то это прекрасно, если вы просите решения прямых проблем, которые были даны вам для решения, как часть вашей учебной программы, тогда не делайте этого. Проанализируйте концептуальные части, в которых вы не поняли и получите ясность, задавая вопросы по концепциям. – Ironluca

+0

@ Ironluca Возможно, вы заявили, что ошибаетесь, я просто хотел узнать, можно ли вводить данные как определенный класс, в данном случае Student – NHTorres

+0

Хорошо, это подсказка, бинарные деревья имеют корневой узел, который в большинстве случаев является среднее значение. На любом уровне в B-Tree существует ровно два узла, обычно у левого узла есть значение меньше родительского узла, а правый узел имеет значение больше, чем родительский узел. Основная идея заключается в поиске значения как можно быстрее. В вашем случае родительский узел будет иметь 50, а левый узел будет 0-49 и правый узел 50-100. В вашем случае, поскольку есть 3 объекта, дерево должно быть 3 двоичных дерева с верхним узлом как абстрактное - удача :) – Ironluca

ответ

1

Хорошо, это намек, Бинар деревья имеют корневой узел, который в большинстве случаев является средним значением. На любом уровне в B-Tree существует ровно два узла, обычно у левого узла есть значение меньше родительского узла, а правый узел имеет значение больше, чем родительский узел. Основная идея заключается в поиске значения как можно быстрее. В вашем случае родительский узел будет иметь 50, а левый узел будет 0-49 и правый узел 51-100. В вашем случае, поскольку есть 3 объекта, дерево должно быть 3 двоичных дерева с верхним узлом как абстрактное.

Смежные вопросы