У меня есть класс Java: BinaryTree , который я заполняю из файла следующим образом:
E .
T -
I ..
N -.
M --
A .-
W .--
R .-.
S ...
etc (to end of alphabit)
BinaryTree имеет:
setRight(BinaryTree) -sets the right element
setLeft(BinaryTree) -sets the left element
setRootElement(t) -sets the root element
getRight() -gets the right element
getLeft() -gets the left element
getRootElement() -gets the root element of the node IE/ a Character
size() -returns the size of the tree
Это единственные доступные методыв классе BinaryTree мне дали
Так что я хочу сделать, я хочу прочитать каждую строку файла одну за другой, получая букву и строку "кода Морзе".ПРИМЕЧАНИЕ: я могу использовать только класс Scanner для чтения файла!
Тогда я хочу рекурсивно заполнить это дерево из содержимого файла и нескольких правил:
A "«.означает галочку влево, поэтому первая часть файла будет означать узел галочки с символом «E» слева от корня
A «-» означает галочку вправо, поэтому вторая строка в файле будет означать галкуузел с символом 'T' справа от корня.
Таким образом, "W .--" будет означать узел галочки с буквой "W" от корня Один узел слева, затем один узел справа, затем галссправа от этого узла.
В конце концов дерево будет выглядеть так:
tree http://i56.tinypic.com/339tuys.png
Поскольку я новичок в рекурсии IУ меня много проблем с визуализацией того, как дерево может быть заполнено рекурсивно при чтении из файла с помощью сканера.
Должен ли я прочитать файл в другом месте и передать информацию в рекурсивный метод ???
Или я мог бы прочитать файл прямо в рекурсивном методе?Что не представляется возможным.
Кроме того, что бы вы использовали в качестве базового варианта, я испытываю желание использовать t.size () == 27, потому что это размер конечного дерева.
Любые предложения или комментарии будут с благодарностью !!
Спасибо!