/******************************************begin node class**************************************/
package com.tree.node;
import java.util.ArrayList;
import java.util.List;
public class Node
{
//子id
private int id;
//父id
private int pid;
//描述
private String desc;
//子节点
public List<Node> children = new ArrayList<Node>(0);
public Node(int id,int pid,String desc)
{
this.id = id;
this.pid= pid;
this.desc = desc;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getPid() {
return pid;
}
public void setPid(int pid) {
this.pid = pid;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
/******************************************end node class**************************************/
/*****************************************begin Tree class *************************************/
package com.tree.node;
public class Tree
{
//根节点
public Node root = new Node(0,-1,"根节点");
public void addNode(Node node)
{
eqNode(root,node);
}
private void eqNode(Node fN,Node node)
{
if(fN.getId()==node.getPid())
{
fN.children.add(node);
}
else
{
for(Node n :fN.children)
{
eqNode(n,node);
}
}
}
public void display(Node node,String s)
{
System.out.println(s+node.getDesc());
s+="|------";
if(node.children.size()>0)
{
for(Node n: node.children)
{
display(n,s);
}
}
}
}
/*******************************************end Tree class********************************/
/********************************************test clas ***********************************/
package com.tree.node;
public class Test {
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
/**
* 当前的参数fid必须在当前树中存在
*/
Tree tree = new Tree();
Node n1 = new Node(1,0,"节点1");
Node n2 = new Node(2,1,"节点2");
Node n3 = new Node(3,2,"节点3");
Node n4 = new Node(4,0,"节点4");
Node n5 = new Node(5,3,"节点5");
Node n6 = new Node(6,0,"节点6");
Node n7 = new Node(7,6,"节点7");
//Node n8 = new Node(8,6,"节点8");
Node n9 = new Node(9,1,"节点9");
Node n10 = new Node(10,4,"节点10");
Node n8 = new Node(8,10,"节点8");
Node n11 = new Node(11,8,"节点11");
Node n12 = new Node(12,5,"节点12");
Node n13 = new Node(13,5,"节点13");
tree.addNode(n1);
tree.addNode(n2);
tree.addNode(n3);
tree.addNode(n4);
tree.addNode(n5);
tree.addNode(n6);
tree.addNode(n7);
//tree.addNode(n8);
tree.addNode(n9);
tree.addNode(n10);
tree.addNode(n8);
tree.addNode(n11);
tree.addNode(n12);
tree.addNode(n13);
tree.display(tree.root,"");
}
}
分享到:
相关推荐
基于java实现tree的数据结构和算法
使用java实现B+ tree, 可以编译运行通过。
java中tree的实现,更简单,更易懂。。。。。。。
Java中带复选框的树(Java CheckBox Tree)的实现和应用.doc
PersistentIdealHashTree的Java实现
步骤为数据库文件创建一个B+树索引: (1)生成数据文件, (2)为数据库文件的属性创建B+ 树文件。 (3)给定键值,通过B+树进行查找。同时比较与直接扫描表的性能差别。...资源包括:Java源码及实验报告!
FP树增长算法是数据挖掘中挖掘频繁项集的有效方法,可以避免多次扫描数据库,提高挖掘频繁项集的效率.
关于2-4 tree Java implementation, 简单,易懂,以基本java code 编写
基于JAVA的Tree树形菜单管理系统源代码;非常漂亮的自绘树形控件,是使用自绘树形控件的好例子;实现树形结构,使用简单,易用,大家多多指教.
B+ tree的java实现和C++实现,可在google上搜到,整理下给需要的朋友。
一个XML文档容器,不需要复杂的js tree来实现
Java实现字典树TrieTree,可用于计算出四六级试题的高频词.
开发环境myeclipse,使用java编写,采用网格法和KDTree实现空间检索,包含代码以及数据集
主要为大家详细介绍了java实现递归菜单树,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
java swing tree树的懒加载, 下载文件导入eclipse可直接运行。
部门组织显示开发,从jsp到后台java都有详细解析,同时提供有相关的js。开发内容简单,适合初学者和忘记部门树开发者。
一个简单的小例子递归实现list按照index排序的树
数据挖掘关联规则FP-Tree的java实现
不要分,要的是人气!资源很给力的!欢迎下载!
使用了算法导论上面的方式实现了B树的基本操作,例如插入删除等