我必须制作一个表达式树。这是它的单个示例模型。但它显示我奇怪的字符,但不是我的字符串。 你能帮我解决这个问题吗?还有一个问题:你能告诉我简化代码的方法吗?这段代码怎么样?我可以不用吗?
public Iterator<TreeNode<T>> iterator() {
return null;
}
import java.util.*;
public class TreeNode<T> implements Iterable<TreeNode<T>> {
T data;
TreeNode<T> parent;
List<TreeNode<T>> children;
public TreeNode(T data) {
this.data = data;
this.children = new LinkedList<TreeNode<T>>();
}
public TreeNode<T> addChild(T child) {
TreeNode<T> childNode = new TreeNode<T>(child);
childNode.parent = this;
this.children.add(childNode);
return childNode;
}
public Iterator<TreeNode<T>> iterator() {
return null;
}
public static void main(String[] args){
TreeNode<String> root = new TreeNode<String>("root");
System.out.println(" " + root + " ");
System.out.println(" / \\ ");
TreeNode<String> node1 = root.addChild("node1");
TreeNode<String> node2 = root.addChild("node2");
System.out.println(" " + node1 + " " + node2);
System.out.println(" \\");
TreeNode<String> node20 = node2.addChild(null);
System.out.println(" " + node20);
System.out.println(" / \\");
TreeNode<String> node21 = node2.addChild("node21");
TreeNode<String> node210 = node20.addChild("node210");
System.out.println(" " + node21 + " " + node210);
}
}
答案 0 :(得分:5)
要在输出中查看更有意义的值,您应该覆盖toString()
的{{1}}方法,可能类似于:
TreeNode
答案 1 :(得分:2)
您需要覆盖toString
上的TreeNode
方法。此外,如果您不想实施iterator
方法,则不应implement Iterable
。