简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。
试图实现叶子存在可变的节点,能够用来解析xml文件。
叶子的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
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;
}
}
|
树的代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
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));
}
}
}
}
|
测试的主函数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
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" );
}
}
|
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。