У меня есть дерево splay, которое я хочу напечатать в текстовой области. Он печатает на консоли, но я решил добавить графический интерфейс, который я хочу напечатать деревом для textArea.Печать BST в текстовой области в java
public class Bst<Key extends Comparable<Key>, Value> {
private Node root;
private class Node {
private Key phone_number;
private Value contact_name;
private Node left, right;
public Node(Key phone_number, Value contact_name) {
this.phone_number = phone_number;
this.contact_name = contact_name;
}
}
public boolean contains(Key phone_number) {
return (get(phone_number) != null);
}
// return contact_name associated with the given phone_number
public Value get(Key phone_number) {
root = splay(root, phone_number);
int cmp = phone_number.compareTo(root.phone_number);
if (cmp == 0)
return root.contact_name;
else
return null;
}
public void printTree()
{
if(isEmpty())
System.out.println("Empty tree");
else
printTree(root);
}
private void printTree(Node t)
{
if (t.left != null)
{
System.out.println("Phone Number:" + t.phone_number.toString() + " Contact Name : " + t.contact_name.toString());
printTree(t.left);
}
if (t.right != null)
{
printTree(t.right);
System.out.println("name:" + t.phone_number.toString() + " Number : " + t.contact_name.toString() );
}
}
}
В настоящее время мой printTree имеет недействительный тип возврата, как показано выше.
Как я могу изменить свой код, чтобы иметь возможность печатать все значения и ключи дерева в TextArea. Я знаю, что setText() принимает строковый тип, но в этом случае это не сработает (я думаю), как я могу убедиться, что метод печати выводит все значения в текстовую область?
хотя бы полный текст сообщения. – Makky
Я бы перешел в 'StringBuilder' и просто называет' append' там, где есть 'System.out' – Danny
. Кажется, это хорошая ситуация для реализации шаблона посетителя. –