首页 > 开发 > Java > 正文

Java实现简单树结构

2024-07-13 10:03:03
字体:
来源:转载
供稿:网友

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

试图实现叶子存在可变的节点,能够用来解析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");   }  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表