Я пытаюсь написать пример из моего учебника по рекурсии, в котором у меня есть этот метод для печати списка ключей и значений из моего двоичного дерева поиска:
public void listBindings(PrintStream out) {
if (root != null) {
root.left.listBindings(out);
out.println(root.key + " = " + root.value);
root.right.listBindings(out);
}
}
Мне нужно создать getWriter () используя PrintWriter, чтобы распечатать список этих ключей и привязок из моего BST. Как мне это сделать?
Я пробовал эти способы:
public String printListBindings() {
if (root != null) {
StringBuilder sb = new StringBuilder();
sb.append(root.left);
sb.append(root.key + " = " + root.value);
sb.append(root.right);
}
return printListBindings(); // this recurses to a stackoverflow
}
public String getWriter(listBindings (out)) {
PrintWriter pw = new PrintWriter(listBindings(out), true);
return pw.toString();
}
public String printBindings(ArrayList<String> bindings) {
if (root != null) {
String leftNode = root.left.listBindings(key); // I think it is supposed to recurse?
String rightNode = root.right.key; // or maybe this way?
bindings.add(root.key);
}
return bindings.toString();
}
public void writeBindings(String fileName) {
PrintWriter outputWriter = new PrintWriter(out);
ArrayList<String> bindings = new ArrayList<String> ();
for (String binding : bindings) {
outputWriter.write(binding);
outputWriter.newLine();
}
outputWriter.close();
}