我在为二进制搜索树编写节点时遇到了一些麻烦。我知道它应该指向左子和右子,并且在数据字段中它将有一个字符串,但我也希望它指向一个arraylist。哪个部分我不确定如何在java中编写代码。
class BSTNode {
BSTNode( Comparable theString ) {
element = theString;
left = right = null;
}
Comparable element; // The data in the node
BSTNode left; // Left child
BSTNode right; // Right child
}
答案 0 :(得分:3)
要在每个节点上都有ArrayList<String>
,只需在节点类中添加ArrayList<String>
字段,如下所示:
public class BSTNode {
private String value;
private ArrayList<String> listOfStrings;
private BSTNode left;
private BSTNode right;
// Constructor and other methods here
}
然后,除了正常的BST方法之外,您可能还想为ArrayList<String>
字段添加访问器和增变器方法。如何做到这一点显然取决于你打算用树做什么。
以下是向ArrayList<String>
添加字符串的简单方法示例:
public void addStringToList(String str) {
this.listOfStrings.add(str);
}
获取整个ArrayList<String>
的方法示例:
public ArrayList<String> getList() {
return this.listOfStrings;
}
这些方法将直接出现在BSTNode类的主体中。
如果我没有回答您的问题,请考虑修改您的问题以澄清问题。