软件编程
位置:首页>> 软件编程>> java编程>> Java实现简单树结构

Java实现简单树结构

作者:Java开发-搁浅  发布时间:2023-08-06 18:59:12 

标签:java,树结构

简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。

试图实现叶子存在可变的节点,能够用来解析xml文件。

叶子的代码:


package com.app;

import java.util.ArrayList;
import java.util.List;

public class treeNode<T> {
  public T t;
  private treeNode<T> parent;

public List<treeNode<T>> nodelist;

public treeNode(T stype){
    t   = stype;
    parent = null;
    nodelist = new ArrayList<treeNode<T>>();
  }

public treeNode<T> getParent() {
    return parent;
  }  
}

树的代码:


package com.app;

public class tree<T> {

public treeNode<T> root;

public tree(){}

public void addNode(treeNode<T> node, T newNode){
    //增加根节点
    if(null == node){
      if(null == root){
        root = new treeNode(newNode);
      }
    }else{
        treeNode<T> temp = new treeNode(newNode);
        node.nodelist.add(temp);
    }
  }

/*  查找newNode这个节点 */
  public treeNode<T> search(treeNode<T> input, T newNode){

treeNode<T> temp = null;

if(input.t.equals(newNode)){
      return input;
    }

for(int i = 0; i < input.nodelist.size(); i++){

temp = search(input.nodelist.get(i), newNode);

if(null != temp){
        break;
      }  
    }

return temp;
  }

public treeNode<T> getNode(T newNode){
    return search(root, newNode);
  }

public void showNode(treeNode<T> node){
    if(null != node){
      //循环遍历node的节点
      System.out.println(node.t.toString());

for(int i = 0; i < node.nodelist.size(); i++){
        showNode(node.nodelist.get(i));
      }      
    }
  }
}

测试的主函数:


package com.app;

public class app {

/**
   * @param args
*/
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    /*简单实现一个树的结构,后续完善解析xml       */
    /*写得满烂的,后续查阅一些其他代码        2012-3-12  */
    //测试
    /*
    * string
    *     hello
    *       sinny
    *       fredric
    *     world
    *      Hi
    *      York
    * */

tree<String> tree = new tree();
    tree.addNode(null, "string");
    tree.addNode(tree.getNode("string"), "hello");
    tree.addNode(tree.getNode("string"), "world");
    tree.addNode(tree.getNode("hello"), "sinny");
    tree.addNode(tree.getNode("hello"), "fredric");
    tree.addNode(tree.getNode("world"), "Hi");
    tree.addNode(tree.getNode("world"), "York");
    tree.showNode(tree.root);

System.out.println("end of the test");
  }

}
0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com