简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。
试图实现叶子存在可变的节点,能够用来解析xml文件。
叶子的代码:
package com.app;
import java.util.ArrayList;
import java.util.List;
public class treeNode {
public T t;
private treeNode parent;
public List> nodelist;
public treeNode(T stype){
t = stype;
parent = null;
nodelist = new ArrayList>();
}
public treeNode getParent() {
return parent;
}
}
树的代码:
package com.app;
public class tree {
public treeNode root;
public tree(){}
public void addNode(treeNode node, T newNode){
//增加根节点
if(null == node){
if(null == root){
root = new treeNode(newNode);
}
}else{
treeNode temp = new treeNode(newNode);
node.nodelist.add(temp);
}
}
/* 查找newNode这个节点 */
public treeNode search(treeNode input, T newNode){
treeNode 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 getNode(T newNode){
return search(root, newNode);
}
public void showNode(treeNode 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 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");
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。