[code]import java.io.*;
class Node{
Node left;
Node right;
char str;
public Node(){
this.right=null;
this.left=null;
}
public Node(char str){
this(str,null,null);
}
public Node(char str, Node left, Node right){
this.str=str;
this.left=left;
this.right=right;
}
public void visit(){
System.out.println(str+" ");
}
}
class Tree {
Node root;
char c[];
int i=0;
public Tree() {
root=null;
}
public Node CreatTree(Node node){
if(c[i]==' '){
node=null;
i++;
}
else{
node=new Node(c[i]);
System.out.println("node: "+i+" "+node.str);
i++;
CreatTree(node.left);
CreatTree(node.right);
}
return node;
}
public void preorder(Node node){
if(node!=null){
node.visit();
preorder(node.left);
preorder(node.right);
}
else{
System.out.println("Tree node is empty");
}
}
}
public class PreOrder {
public static void main(String args[]) throws IOException{
System.out.println("please input Inorder tree");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
Tree tree=new Tree();
tree.c=s.toCharArray();
tree.root=tree.CreatTree(tree.root);
tree.preorder(tree.root);
}
}[/code]
为什么我调用的tree.CreatTree(tree.root);
创建之后,tree的root还是null?
一直没有想明白,
求高手帮改一下...
谢谢
class Node{
Node left;
Node right;
char str;
public Node(){
this.right=null;
this.left=null;
}
public Node(char str){
this(str,null,null);
}
public Node(char str, Node left, Node right){
this.str=str;
this.left=left;
this.right=right;
}
public void visit(){
System.out.println(str+" ");
}
}
class Tree {
Node root;
char c[];
int i=0;
public Tree() {
root=null;
}
public Node CreatTree(Node node){
if(c[i]==' '){
node=null;
i++;
}
else{
node=new Node(c[i]);
System.out.println("node: "+i+" "+node.str);
i++;
CreatTree(node.left);
CreatTree(node.right);
}
return node;
}
public void preorder(Node node){
if(node!=null){
node.visit();
preorder(node.left);
preorder(node.right);
}
else{
System.out.println("Tree node is empty");
}
}
}
public class PreOrder {
public static void main(String args[]) throws IOException{
System.out.println("please input Inorder tree");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s=br.readLine();
Tree tree=new Tree();
tree.c=s.toCharArray();
tree.root=tree.CreatTree(tree.root);
tree.preorder(tree.root);
}
}[/code]
为什么我调用的tree.CreatTree(tree.root);
创建之后,tree的root还是null?
一直没有想明白,
求高手帮改一下...
谢谢