/******************************************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语言,介绍一种树形数据结构的实现方法,包括其类的设计、节点的添加...
下面将详细讨论如何用Java实现B+树。 首先,B+树的节点分为两种类型:内部节点(或索引节点)和叶子节点。内部节点存储键值,不存储数据,而叶子节点则同时存储键值和对应的数据。在Java实现中,我们通常会创建两个...
文件`java实现树状关系图.htm`和`java实现树状关系图.files`可能包含了关于如何在Java中用图形方式表示树状结构的示例代码或资源,这通常涉及到Swing库中的`JTree`组件。`JTree`允许我们在GUI应用程序中创建交互式的...
在Java编程中,TreeMap是一种基于红黑树(Red-Black Tree)算法实现的有序映射数据结构。它按照键的自然顺序或者自定义比较器的顺序来存储元素。在这个场景下,`TreeMap`被用来实现数据的分组,并构建一个树形结构,...
总结来说,Java 中实现带复选框的树(CheckBox Tree)需要自定义 TreeNode 类(CheckBoxTreeNode),用于存储结点是否被选中的状态,并实现选中/取消选中时子结点和父结点的状态更新。同时,还需要创建一个 ...
Java Tree在Web上的实现主要涉及的是前端展示与后端数据交互的技术,以及如何利用XML作为数据容器。在本文中,我们将深入探讨如何使用Java技术栈,特别是JSP(JavaServer Pages)和JavaScript库如jTree,来构建一个...
在提供的`fpgrowth`文件中,可能包含了FP树算法的具体Java实现代码,包括类定义、方法实现以及可能的数据示例。通过阅读和理解这段代码,我们可以深入学习FP树算法的内部工作机制,并将其应用到实际的数据挖掘项目中...
5. Java实现: 在Java中,我们可以使用类和对象来实现树结构。例如,定义一个Node类,包含数据和指向子节点的引用。为了支持树的各种操作,我们可以编写对应的函数,如insertNode()、deleteNode()、searchNode()等...
本项目专注于使用Java语言实现两种高效的空间检索算法:网格法和KDTree。下面将详细阐述这两种方法及其在Java中的实现。 首先,网格法,也称为四叉树或QUADtree,是一种将空间数据结构划分为小的、互不重叠的矩形...
本文将深入探讨PersistentIdealHashTree的Java实现及其在并发编程中的应用。 首先,我们需要理解PersistentIdealHashTree的基本概念。这种数据结构是一种基于哈希表的持久化数据结构,其核心特点是能够在保持旧版本...
在Java开发中,构建部门树(Tree)是一个常见的需求,特别是在企业级应用中,用于展示组织结构或权限管理。这个项目提供了从JSP前端到Java后端的完整解决方案,非常适合初学者理解和学习,也能帮助有经验的开发者...
Java Tree Demo是一个面向Java开发者的示例项目,它展示了如何在Java中实现树形数据结构以及相关的操作。这个项目可能包含一系列的版本,从最初的基础实现到最终的完善版本,以便展示开发过程中的演变。根据描述,源...
步骤为数据库文件创建一个B+树索引: (1)生成数据文件, (2)为数据库文件的属性创建B+ 树文件。 (3)给定键值,通过B+树进行查找。同时比较与直接扫描表的性能差别。...资源包括:Java源码及实验报告!
在Java编程语言中,"Tree"通常指的是树形数据结构的实现,这在软件开发中具有广泛的应用。本文将深入探讨几种开源的Java Tree组件,它们可以帮助开发者高效地处理和展示树状数据。 1. **JTree(Java Swing组件)** ...
本项目“基于JAVA的Tree树形菜单管理系统源代码”提供了一个实现这种功能的实例,展示了如何利用Java语言来创建一个美观且易用的树形菜单系统。 在Java中,树形控件的实现主要依赖于Java Swing库,特别是`javax....
Java提供了多种方式来实现和操作树结构,其中最常见的是使用Java集合框架中的`java.util.TreeSet`和`java.util.TreeMap`,以及`java.awt.tree.TreeModel`和`javax.swing.JTree`用于图形用户界面的树视图。...
本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将深入探讨这个主题。 首先,我们要了解Java集合框架。Java集合框架是Java语言提供的一组接口和类,用于存储和操作各种数据结构...
在Java中,`java.util.TreeSet`和`java.util.TreeMap`是两个常用的类,它们基于红黑树(Red-Black Tree)算法实现,提供了有序的存储和高效的操作。 动态树列表(TreeList)是一种增强的树形视图,它结合了树和列表...
在IT领域,2-4树是一种特殊的自平衡二叉查找树(B-tree),它具有2个到4个孩子节点的特点。这种数据结构主要用于高效...2-4树的Java实现可以帮助开发者掌握数据结构和算法,这是提升编程技能和解决复杂问题的关键能力。
在 Java 开发中,jsTree 可以与后端服务进行交互,动态加载数据,实现前端界面的动态展示。 **1. jsTree 的基本使用** jsTree 首先需要在 HTML 页面中引入相关的 CSS 和 JS 文件。你可以通过 CDN 或者本地文件引用...