Java实现简单树结构
程序员文章站
2024-03-08 21:45:34
简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。
试图实现叶子存在可变的节点,能够用来解析xml文件。
叶子的代码:
package co...
简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。
试图实现叶子存在可变的节点,能够用来解析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"); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。