快乐无限
Would you like to react to this message? Create an account in a few clicks or log in to continue.
快乐无限

快乐无限,永远无限!


您没有登录。 请登录注册

Binary Tree Code

2 posters

向下  留言 [第1页/共1页]

1Binary Tree Code Empty Binary Tree Code 周二 十一月 10, 2009 5:07 pm

黑龙王


论坛使者
论坛使者

代码:
import java.io.*;
import java.util.LinkedList;
import java.util.Scanner;
import java.lang.String;

public class BinaryTree<T>
{ private TreeNode<String> root;
  private String preOrder;
  private String inOrder;
  private String postOrder;
  private LinkedList<String> preOrderList;
  private LinkedList<String> inOrderList;
 
  public BinaryTree()
  {root=null;
    preOrderList = new LinkedList<String>();
    inOrderList = new LinkedList<String>();}
 
  public void print()
  { System.out.println(preOrder);
    System.out.println(inOrder);}
   
  public void scan()throws IOException
  { Scanner s = new Scanner(new File("input0"));
    if(s.hasNext())
    { preOrder = new String(s.next());
      inOrder = new String(s.next());
    }
   
    while(preOrder.length()>0)
    {preOrderList.add(preOrder.substring(0,1));
    preOrder = preOrder.substring(1);}
   
    while(inOrder.length()>0)
    {inOrderList.add(inOrder.substring(0,1));
    inOrder = inOrder.substring(1);}
   
  }
 
  public String insertElements(LinkedList <String>pre, LinkedList  <String>in, TreeNode roots)
  {if(pre.size()<=0 || in.size()<=0)
      return postOrder;
  String element = pre.removeFirst();
  int index =-1;
  for(int x =0; x<in.size(); x++)
  {if(element.equals(in.get(x)))
      index=x;}
  if(index<0)
    return postOrder;
  LinkedList<String> left = new LinkedList<String>();
  LinkedList<String> right = new LinkedList<String>();
  for(int x=0; x<index; x++)
  {left.add(new String(in.get(x)));}
  for(int x=index+1; x<in.size(); x++)
  {right.add(new String(in.get(x)));}
  TreeNode <String>leftNode = null;
  TreeNode <String>rightNode = null;
  roots = new TreeNode<String>(element);
  insertElements(pre, left, leftNode);
  insertElements(pre, right, rightNode);
  roots.setLeft(leftNode);
  roots.setRight(rightNode);
  return postOrder=postOrder+roots.getValue();
    }

public void fill()
{
String post=insertElements(preOrderList, inOrderList, root);
post = post.substring(4,post.length());
System.out.println(post);
}

public void print2()
{System.out.println(root.getValue());}


public class TreeNode<T>
{private T element;
 private TreeNode left;
 private TreeNode right;
 
 public TreeNode(T object){
    element = object;
    left = null;
    right = null;}
   
 public TreeNode(T object, TreeNode tempLeft, TreeNode tempRight){
    element = object;
    left = tempLeft;
    right = tempRight;}
   
 public T getValue(){
    return element;}
   
 public TreeNode getLeft(){
    return left;}
   
 public TreeNode getRight(){
    return right;}
   
 public void setValue(T theValue){
    element = theValue;}
   
 public void setLeft(TreeNode theLeft){
    left = theLeft;}
   
 public void setRight(TreeNode theRight){
    right = theRight;}
   
    }

public static void main(String args[])throws IOException
{BinaryTree<String> tree = new BinaryTree<String>();
tree.scan();
tree.fill();
tree.print2();
}
}

别忘了TreeNode,上面那个code里已经有treeNode,下面这个可以用来种新树!

代码:
public class TreeNode<T>
{private T element;
 private TreeNode left;
 private TreeNode right;
 
 public TreeNode(T object){
    element = object;
    left = null;
    right = null;}
   
 public TreeNode(T object, TreeNode tempLeft, TreeNode tempRight){
    element = object;
    left = tempLeft;
    right = tempRight;}
   
 public T getValue(){
    return element;}
   
 public TreeNode getLeft(){
    return left;}
   
 public TreeNode getRight(){
    return right;}
   
 public void setValue(T theValue){
    element = theValue;}
   
 public void setLeft(TreeNode theLeft){
    left = theLeft;}
   
 public void setRight(TreeNode theRight){
    right = theRight;}
   
    }
 

作者:本人

2Binary Tree Code Empty 回复: Binary Tree Code 周二 十一月 10, 2009 7:44 pm

Mandy

Mandy
论坛使者
论坛使者

what?? what is that?

3Binary Tree Code Empty 回复: Binary Tree Code 周二 十一月 10, 2009 8:15 pm

黑龙王


论坛使者
论坛使者

java code

返回页首  留言 [第1页/共1页]

您在这个论坛的权限:
不能在这个论坛回复主题