0
我写了一个通用的树像这样实现:如何打印普通的树
public class Tree {
private Node root;
private Node ultimo;
private Node padre;
private String nome;
private String messaggio;
public Tree() {
root = null;
ultimo = root;
padre = root;
}
public Node getRoot() {
return root;
}
public void setRoot(Node root) {
this.root = root;
}
public Node getUltimo() {
return ultimo;
}
public Node getPadre() {
return padre;
}
public String getNome() {
return nome;
}
public String getMessaggio() {
return messaggio;
}
public void setUltimo(Node ultimo) {
this.ultimo = ultimo;
}
public void setPadre(Node padre) {
this.padre = padre;
}
public void setNome(String nome) {
this.nome = nome;
}
public void setMessaggio(String messaggio) {
this.messaggio = messaggio;
}
public ArrayList<Node> getPreOrderTraversal() {
ArrayList<Node> preOrder = new ArrayList<Node>();
buildPreOrder(root, preOrder);
return preOrder;
}
public ArrayList<Node> getPostOrderTraversal() {
ArrayList<Node> postOrder = new ArrayList<Node>();
buildPostOrder(root, postOrder);
return postOrder;
}
private void buildPreOrder(Node node, ArrayList<Node> preOrder) {
preOrder.add(node);
for(Node child : node.getChildren()) {
buildPreOrder(child, preOrder);
}
}
private void buildPostOrder(Node node, ArrayList<Node> preOrder) {
for(Node child : node.getChildren()) {
buildPreOrder(child, preOrder);
}
preOrder.add(node);
}
public void print(String indent) {
if(root == null) {
System.out.println("Empty tree.");
return;
}
if(getPadre() != null)
getPadre().printNode();
getUltimo().printNode();
}
}
现在我想编写一个方法,让我打印整个树(或图形形式的graphviz或通过提示)。现在,我写的print()方法只打印树中最后一个插入的节点和他的父亲。
我想打印整棵树我应该使用print方法递归,但怎么样? 非常感谢您
但是一个二叉树的例子,虽然我有一个通用的树..与二叉树是“简单”,因为你只是调用预订左子上的方法,然后在右..但与一个你做的节点列表? – user3602008
从这个例子看来,每个节点似乎都有两个名为ultimo和padre的孩子。因此,对于这样的树木,我相信我们可以应用二叉树算法。 –