次のようにファイルから入力しているJavaクラスBinaryTree<t>があります。
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クラスで利用可能な唯一のメソッドです
だから私がやりたいのは、ファイルの各行を1つずつ読み、文字と「モールス信号」の文字列を取得することです。注:ファイルの読み取りにはScannerクラスしか使用できません!
次に、ファイルの内容といくつかのルールからこのツリーを再帰的に埋めたいと思います。
「。」左へのタックを意味するため、ファイルの最初の部分は、ルートの左側に「E」文字が付いたタックノードを意味します。
「-」は右へのタックを意味するため、ファイルの2行目は、ルートの右側に「T」文字が付いたタックノードを意味します。
したがって、「W .--」は、ルートから「W」のノードをタックすることを意味します。1つのノードを左に、次に1つのノードを右に、次にそのノードの右側にタックします。
最終的に、ツリーは次のようになります。
ツリーhttp://i56.tinypic.com/339tuys.png
Recursionを初めて使用するため、スキャナーを使用してファイルから読み取るときに、ツリーが再帰的に満たされる方法を視覚化するのに多くの問題があります。
他の場所でファイルを読み取り、その情報を再帰メソッドに渡す必要がありますか?
または、再帰的な方法でファイルを正しく読み取ることができますか?それは不可能のようです。
また、ベースケースとして何を使用しますか。これは、最終的なツリーのサイズであるため、t.size()==27を使用したいと思います。
何か提案やコメントをいただければ幸いです!!
ありがとうございました!