java的树_Java实现简单树结构

简单的实现了一个树的结构,很不完善!后续参考一些其他代码的实现。

试图实现叶子存在可变的节点,能够用来解析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");

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值