我正在开发一个项目,在该项目中,我应该开发一组类来实现BST,该BST允许我用莫尔斯电码编码一个单词并将莫尔斯电码转换为字母数字格式。
已为我提供以下内容: BST通用实现-> https://pastebin.com/mGLY2V25
此类实现以下接口:
public interface BSTInterface<E> {
boolean isEmpty();
void insert(E element);
void remove(E element);
int size();
int height();
E smallestElement();
Iterable<E> inOrder();
Iterable<E> preOrder();
Iterable<E> posOrder();
Map<Integer, List<E>> nodesByLevel();
}
到目前为止,我提出了以下建议:
class MorseTree extends BST<MorseNode> {
public MorseTree() {
init();
}
private void init() {
BufferedReader in;
InputStream inputStream = getClass().getResourceAsStream("/morse_V3.txt");
in = new BufferedReader(new InputStreamReader(inputStream));
insert(new MorseNode(new String[]{"start"}));
MorseNode last = root.getElement();
in.lines().forEach(line -> {
String[] temp = line.trim().replaceAll(" +", " ").split(" ");
MorseNode w = new MorseNode(temp);
for (int i = 0; i < temp[0].length(); i++) {
}
});
}
@Override
public void insert(MorseNode element) {
root = insert(element, root);
}
private Node<MorseNode> insert(MorseNode element, Node<MorseNode> node) {
if (node == null) {
return new Node<>(element, null, null);
}
}
}
public class MorseNode implements Comparable<MorseNode> {
private String morse;
private Character letter;
private String tipo;
public MorseNode(String[] word) {
this.morse = word[0];
this.letter = word[1].charAt(0);
this.tipo = word[2];
}
@Override
public int compareTo(MorseNode o) {
if (letter == o.letter) {
return 0;
}
}
@Override
public String toString() {
return Character.toString(letter);
}
}
(Pastebin)
要构建树,我应该读取一个csv / txt文件并将其插入。根据我的想法,我应该以提供的insert方法将其自动插入的方式在类中实现compareTo方法。
那是我的问题。两个星期以来,我一直在尝试,但对如何比较两个摩尔斯电弦一无所知。
任何帮助或建议都将受到赞赏!