Реализация дерева AVL для Java

Хорошо, я пытаюсь начать свое задание, но я понятия не имею, с чего начать в первую очередь и как будет выглядеть конечный результат. Это класс алгоритмов, поэтому он не показывает нам коды или что-то, что может помочь в программировании на Java. Мы также никогда раньше не имели дело ни с какими узлами в классах программирования Java. Предполагается, что мы будем использовать дерево AVL и иметь методы поиска, вставки, удаления и неупорядоченного обхода. Мой вопрос в основном в том, как бы я вывел это? Все, что он когда-либо делал, это рисовал дерево, так как же будет выводиться эта маленькая программа?

Любая помощь о том, с чего начать, также будет полезна. Мне просто нужен быстрый старт, и я думаю, что смогу получить остальное. Например, предполагается ли, что программа выводит в каком-то графическом интерфейсе, который показывает дерево?


person user2318083    schedule 17.10.2013    source источник


Ответы (1)


В качестве домашнего задания ясно, что вам нужна реализация AVL с функциями вставки, удаления и обхода.

Надеюсь, это поможет вам начать.

public class AVLTreeNode {
    private int value;
    private AVLTreeNode left;
    private AVLTreeNode right;
    private AVLTreeNode parent;
    //constructor
    //getters/setters
    //required functions
    boolean insert(AVLTreeNode node);
    AVLTreeNode remove(int value);
    AVLTreeNode remove(AVLTreeNode node);
    List<AVLTreeNode> inorderTraversal();
}
person F.Z    schedule 17.10.2013
comment
Спасибо! Похоже, это может дать мне отличный старт! Могу я спросить, будет ли метод find аналогичен методу удаления или таким же? - person user2318083; 17.10.2013
comment
ага найти можно похожее убрать, или вставить. Подпись действительно зависит от того, что вы хотите сделать с функцией и какой результат вам нужен. - person F.Z; 17.10.2013
comment
Я посмотрю на это больше, я ценю вашу помощь. - person user2318083; 17.10.2013
comment
Делая конструктор прямо сейчас, мне было интересно, не должны ли эти частные переменные быть в конструкторе? Или они будут работать, даже если они не внутри класса конструктора? Кроме того, с тем, как я его настроил, у меня есть метод вставки и удаления как вставка (узел AVLTreeNode, значение int) и удаление (узел AVLTreeNode, значение int), которые, вероятно, должны работать так же хорошо, верно? - person user2318083; 20.10.2013