好的,我要做的是让bTree的每个节点都有一个linkedlist。
例如:
Node B holds - bill, buff, blank
Then its left child A holds - ant, art, app
And its right child C holds - cat, can crib
And so on;
这是我到目前为止,但我不确定这是最好的方式做到这一点
public class BSTreeDic {
public class LinkNode{
LinkNode word;
LinkNode next;
public void add(LinkNode wd, LinkNode def){
if (word==null){
word=wd;
next=def;
}else{
LinkNode currentNode = word;
while(currentNode.next!=null){
currentNode=currentNode.next;
}
currentNode.next=def;
next=currentNode.next;
}
}
}
public class Node{
LinkNode word;
Node left;
Node right;
Node(LinkNode wd, LinkNode def){
word = new LinkNode();
word.add(wd, def);
left=right=null;
}
}
}
2条答案
按热度按时间bihw5rsg1#
如果不想使用(和导入)类java.util.linkedlist:
另外,对于二叉搜索树,如果搜索是按字母顺序的,那么剩下的孩子应该早于他们的父母。
还应该为linknode和node提供add()和remove()方法,以添加和删除节点。一种可能性是调用node treenode,并生成类node的linknode和treenode子类。
mlmc2os52#
你很接近。我唯一建议添加的是一个实际的linkedlist对象,它包含对列表头的引用,并允许添加、删除、检索等
其他方法非常相似。您只需要记住linkedlist操作通常与列表遍历相关联。希望这有帮助。