本站首页    管理页面    写新日志    退出

«August 2025»
12
3456789
10111213141516
17181920212223
24252627282930
31


公告

  如果你忍了,欺负你的人将来可能就进监狱了。如果你反击,欺负你的人将来可能就获选十大杰出青年了。

        QQ: 3159671

http://greenboy.javaeye.com/

http://blog.sina.com.cn/u/1278341164 小鸟吹烟


我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:小鸟吹烟
日志总数:157
评论数量:424
留言数量:-1
访问次数:1252822
建立时间:2006年10月23日




[J2SE]树1
文章收藏,  网上资源,  心得体会

tone 发表于 2007/3/22 10:51:45

  package com.designPattern; import java.util.Arrays;import java.util.Iterator;import java.util.List; public class TestTree { private Object data; private TestTree leftChild; private TestTree rightChild;  public TestTree() {}  public TestTree(Object data) { this.data = data; }  public Object getData() { return data; }  public void setData(Object data) { this.data = data; }  public TestTree getLeftChild() { return leftChild; }  public void setLeftChild(TestTree bt) { leftChild = bt; }  public TestTree getRightChild() { return rightChild; }  public void setRightChild(TestTree bt) { rightChild = bt; } //  先序二叉树字符串 public String toStringByPreOrder() { StringBuffer result = new StringBuffer(); result.append(data); result.append(" "); if (leftChild != null) { result.append(leftChild.toStringByPreOrder()); } if (rightChild != null) { result.append(rightChild.toStringByPreOrder()); } return result.toString(); } //  中序二叉树字符串 public String toStringByInOrder() { StringBuffer result = new StringBuffer();  if (leftChild != null) { result.append(leftChild.toStringByInOrder()); } result.append(data); result.append(" "); if (rightChild != null) { result.append(rightChild.toStringByInOrder()); } return result.toString(); } //  后序二叉树字符串 public String toStringByAfterOrder() { StringBuffer result = new StringBuffer();  if (leftChild != null) { result.append(leftChild.toStringByAfterOrder());  } if (rightChild != null) { result.append(rightChild.toStringByAfterOrder()); } result.append(data); result.append(" "); return result.toString(); } //  先序生成二叉树 public static TestTree createTestTreeByPreOrder(Iterator it) { TestTree bt = null; Object o = it.next(); if (o != null) { bt = new TestTree(o); bt.setLeftChild(createTestTreeByPreOrder(it)); bt.setRightChild(createTestTreeByPreOrder(it)); } return bt; } //  中序生成二叉树 public static TestTree createTestTreeByInOrder(Iterator it) { TestTree bt = null; Object o = it.next(); if (o != null) { bt = new TestTree(); bt.setLeftChild(createTestTreeByInOrder(it)); bt.setData(o); bt.setRightChild(createTestTreeByInOrder(it)); } return bt; } //  后序生成二叉树 public static TestTree createTestTreeByAfterOrder(Iterator it) { TestTree bt = null; Object o = it.next(); if (o != null) { bt = new TestTree(); bt.setLeftChild(createTestTreeByAfterOrder(it)); bt.setRightChild(createTestTreeByAfterOrder(it)); bt.setData(o); } return bt; }  public static void main(String[] args) { System.out.println("-------------------- bt ---------------------"); TestTree bt = new TestTree("A"); bt.setLeftChild(new TestTree("B")); bt.setRightChild(new TestTree("C")); System.out.println("pre order : " + bt.toStringByPreOrder()); System.out.println("in order : " + bt.toStringByInOrder()); System.out.println("after order : " + bt.toStringByAfterOrder());  System.out.println("-------------------- bt2 ---------------------"); TestTree bt2 = null; Object[] sequence = new Object[] { "A", "B", "C", null, null, "D", "E", null, "G", null, null, "F", null, null, null }; List l = Arrays.asList(sequence); System.out.println("sequence : " + l);  bt2 = createTestTreeByPreOrder(l.iterator()); System.out.println("pre order : " + bt2.toStringByPreOrder());  bt2 = createTestTreeByInOrder(l.iterator()); System.out.println("in order : " + bt2.toStringByInOrder());  bt2 = createTestTreeByAfterOrder(l.iterator()); System.out.println("after order : " + bt2.toStringByAfterOrder());   }}


阅读全文(2917) | 回复(1) | 编辑 | 精华
 


回复:树1
文章收藏,  网上资源,  心得体会

tone发表评论于2007/3/22 10:53:32

package com.designPattern; import java.util.ArrayList;import java.util.Iterator;import java.util.List; public class TestTree2 { public static void generateTree(List list, int pid , int level){    StringBuffer title = new StringBuffer("") ;    if( list != null && list.size() != 0){      Iterator it = list.iterator() ;         while(it.hasNext()){            Tree node = (Tree)it.next();//得到一个节点        if(node.getPid()==pid){          for(int i = 0 ; i < level ; i ++){             title.append("    ");          }       String name = node.getName();//得到节点的名称          title.append(name);          System.out.println(title.toString());          title = new StringBuffer("");          generateTree(list,node.getId(),level+1);              }      }    }     }  public static void main(String[] args){    Tree tree1 = new Tree(0,1,"一级标题");    Tree tree2 = new Tree(1,2,"二级标题");    Tree tree3 = new Tree(2,3,"三级标题");    Tree tree4 = new Tree(0,4,"一级标题");    Tree tree5 = new Tree(3,5,"四级标题");    Tree tree6 = new Tree(1,6,"二级标题");    Tree tree7 = new Tree(1,7,"二级标题");    Tree tree8 = new Tree(0,8,"一级标题");    Tree tree9 = new Tree(2,9,"三级标题");        Tree[] tree = {tree1,tree2,tree3,tree4,tree5,tree6,tree7,tree8,tree9};    List list = new ArrayList();    for(int i = 0 ; i < tree.length ; i ++){     list.add(tree[i]);    }    generateTree(list,0,0);  }  }  class Tree{     public int id;     public int pid;     public String name;     public Tree(int pid,int id,String name){      this.id =id;      this.pid =pid;      this.name =name;     }  public int getId() {   return id;  }  public void setId(int id) {   this.id = id;  }  public String getName() {   return name;  }  public void setName(String name) {   this.name = name;  }  public int getPid() {   return pid;  }  public void setPid(int pid) {   this.pid = pid;  }  } http://blog.csdn.net/ecaterina/archive/2007/03/19/1533680.aspx


个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除
 


» 1 »

发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.031 second(s), page refreshed 144758202 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号