Java实现简单树结构
简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。
试图实现叶子存在可变的节点,能够用来解析xml文件。
叶子的代码:
packagecom.app; importjava.util.ArrayList; importjava.util.List; publicclasstreeNode<T>{ publicTt; privatetreeNode<T>parent; publicList<treeNode<T>>nodelist; publictreeNode(Tstype){ t=stype; parent=null; nodelist=newArrayList<treeNode<T>>(); } publictreeNode<T>getParent(){ returnparent; } }
树的代码:
packagecom.app; publicclasstree<T>{ publictreeNode<T>root; publictree(){} publicvoidaddNode(treeNode<T>node,TnewNode){ //增加根节点 if(null==node){ if(null==root){ root=newtreeNode(newNode); } }else{ treeNode<T>temp=newtreeNode(newNode); node.nodelist.add(temp); } } /*查找newNode这个节点*/ publictreeNode<T>search(treeNode<T>input,TnewNode){ treeNode<T>temp=null; if(input.t.equals(newNode)){ returninput; } for(inti=0;i<input.nodelist.size();i++){ temp=search(input.nodelist.get(i),newNode); if(null!=temp){ break; } } returntemp; } publictreeNode<T>getNode(TnewNode){ returnsearch(root,newNode); } publicvoidshowNode(treeNode<T>node){ if(null!=node){ //循环遍历node的节点 System.out.println(node.t.toString()); for(inti=0;i<node.nodelist.size();i++){ showNode(node.nodelist.get(i)); } } } }
测试的主函数:
packagecom.app; publicclassapp{ /** *@paramargs */ publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub /*简单实现一个树的结构,后续完善解析xml*/ /*写得满烂的,后续查阅一些其他代码2012-3-12*/ //测试 /* *string *hello *sinny *fredric *world *Hi *York **/ tree<String>tree=newtree(); 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("endofthetest"); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。