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");
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。