Java实现简单树结构

网友投稿 194 2023-06-18


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

rTTqD 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");

}

}

rTTqD 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");

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:利用java制作一个小的目录查询器的方法
下一篇:Java 详解垃圾回收与对象生命周期
相关文章

 发表评论

暂时没有评论,来抢沙发吧~