我試圖從0和1的輸入創建一個二叉樹。例如,如果輸入是11010010,那麼輸出的樹將以1爲根。 2將是1的左邊孩子,4將是正確的孩子。 2將有一個正確的孩子,這將是3.這是樹的結束。由於樹以預定的順序遍歷,數字1-n(n是輸入中1的個數)被分配給被訪問的節點。 1表示根有孩子。例如,第一個1表示訪問根目錄並將1作爲根目錄。第二個意思是根有一個左邊的孩子,一個2放在那裏。之後的0意味着它沒有左邊的孩子。接下來的1意味着它有一個正確的孩子,而3被放置在那裏,等等。我對這棵樹如何被創建感到困惑。我知道在創建樹之後遍歷樹,但不知道如何通過遍歷它來創建樹。任何幫助,將不勝感激。二進制樹的創建
package tree;
import java.io.*;
public class BinaryTree<ArrayList> implements Serializable
{
private static final long serialVersionUID = 1L;
protected static class Node<ArrayList> implements Serializable
{
private static final long serialVersionUID = 1L;
protected int data;
protected Node<ArrayList> left;
protected Node<ArrayList> right;
public Node(int data)
{
this.data = data;
left = null;
right = null;
}
public boolean isLeft()
{
return (left == null);
}
}
protected Node<ArrayList> root;;
public BinaryTree(int x)
{
Node<ArrayList> node = new Node<ArrayList>(x);
this.root = node;
}
public boolean isLeft()
{
return(root.left == null);
}
public void addLeft(int m, BinaryTree.Node<ArrayList> node)
{
root = new Node<ArrayList>(m);
node.left = root;
}
public void preorder(Node<ArrayList> temp)
{
if (temp!=null)
{
System.out.println(temp.data);
preorder(temp.left);
preorder(temp.right);
}
else
return;
}
}
您可以將其格式化爲更具可讀性。 – Jayamohan 2013-04-11 01:50:47
聽起來像作業 – Patashu 2013-04-11 01:56:41
@Jayamohan對不起,我不知道你的意思。格式化問題? – user2268305 2013-04-11 01:56:58