在网上看到一段不错的代码,用java实现了文本形式的树状结构图,其中用到了递归算法,感觉很不错,保存下来啦!
代码如下:
package com.java.test;
import java.util.ArrayList;
import java.util.List;
public class Folder {
public Folder(String title) {
this.title = title;
}
private String title;
private List<Folder> children = new ArrayList<Folder>();
public void addChild(Folder f) {
children.add(f);
}
public List<Folder> getChildren() {
return children;
}
public void setChildren(List<Folder> children) {
this.children = children;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String toString(String lftStr, String append) {
StringBuilder b = new StringBuilder();
b.append(append + title);
b.append("\n");
if (children.size() > 0) {
for (int i = 0; i < children.size() - 1; i++) {
b.append(lftStr + children.get(i).toString(lftStr + "│", "├"));
}
b.append(lftStr + children.get(children.size() - 1).toString(lftStr + " ", "└"));
}
return b.toString();
}
public static void main(String[] args) {
Folder root = new Folder("菜单列表");
Folder f1 = new Folder("开始菜单");
root.addChild(f1);
Folder f1_1 = new Folder("程序");
f1.addChild(f1_1);
Folder f1_1_1 = new Folder("附件");
f1_1.addChild(f1_1_1);
Folder f1_1_1_1 = new Folder("娱乐");
f1_1_1.addChild(f1_1_1_1);
Folder f1_1_1_2 = new Folder("娱乐2");
f1_1_1.addChild(f1_1_1_2);
Folder f1_2 = new Folder("辅助工具");
f1.addChild(f1_2);
Folder f2 = new Folder("My Documents ");
root.addChild(f2);
Folder f3 = new Folder("My Documents2 ");
root.addChild(f3);
System.out.println(root.toString(" ", ""));
}
}
执行结果为:
菜单列表
├开始菜单
│├程序
││└附件
││ ├娱乐
││ └娱乐2
│└辅助工具
├My Documents
└My Documents2
分享到:
相关推荐
在Java编程中,有时我们需要将数据结构以可视化的形式展示出来,例如树状结构。这个题目涉及到了如何在控制台以文本形式展示一个树状结构。在这个例子中,我们使用了一个名为`Folder`的类来表示树的节点,每个节点...
例如,PlantUML是一个开源项目,它支持用简单文本描述生成各种图表,包括树形结构图。在Java项目中,我们可以使用 PlantUML 的 API 或者命令行工具,将树形数据转换为可读性强、美观的图像。 在压缩包中的"新建...
### JAVA实现L-System树形绘制 #### 一、L-System简介 L-System(Lindenmayer System)是一种形式语言系统,由匈牙利理论生物学家Aristid Lindenmayer于1968年提出。该系统主要用于模拟植物生长过程中的形态变化,...
在IT行业中,XML(eXtensible ...通过使用适当的解析器和编程技巧,我们可以高效地处理XML文档,将其转换为易于理解和操作的树形结构。对于给定的Java源码,深入理解并运行这些代码可以帮助我们更好地掌握这一过程。
首先,四叉树(Quadtree)是一种树形数据结构,用于分割二维空间。每个节点代表一个矩形区域,可以有四个子节点,分别对应该矩形的左上、右上、左下和右下四个象限。这种结构便于快速查询和组织空间中的对象,常用于...
从根目录开始,使用递归函数逐级访问每个子目录,收集文件和子目录的信息,构建树形结构的数据模型。 3. **数据结构**:在Java中,可以使用`java.util.TreeMap`或自定义的节点类来构建树结构。每个节点代表一个目录...
6、 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求: 1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状...
在本篇文章中,我们将深入探讨如何在Android中实现树形结构,并讨论其在不同场景下的应用。 首先,树形结构的基本概念是每个节点可以有零个或多个子节点,除了根节点之外,每个节点都有一个父节点。在Android中,...
在压缩包中的"tree"文件可能是一个表示树形结构的文本文件,其中包含了节点信息,比如节点的名称、类型(是叶节点还是内部节点)、子节点列表等。通过分析这个文件,我们可以学习如何创建和操作树结构,以及如何将其...
用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例 Message-Driven Bean EJB实例源代码,演示...
- **递归**:在构建树形结构时,递归是常用的方法,因为它可以方便地处理层级关系。 2. **树形菜单的实现方式** - **纯CSS实现**:通过CSS伪类和`:checked`属性,结合HTML的`<input type="checkbox">`和`<label>`...
在EXTJS中,树形结构(Tree)是一种用于展示层级数据的组件,它允许用户以图形化的方式浏览和操作层次关系。以下是对标题和描述中所述EXTJS实现简单树状结构的知识点的详细说明: 1. **Ext.onReady**:这是EXTJS...
要将XML以树形结构显示,通常会使用XML解析器,如DOM(Document Object Model)解析器,它将整个XML文档加载到内存中形成一棵树,每个节点代表XML的一个部分。在GUI应用中,这棵树可以映射到树形控件上,用户可以...
Java POI库是Apache软件基金会开发的一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页...
常见的数据结构如树形结构(如二叉树或N叉树)、图等,在此场景下都有其适用性。 ### 二、关键知识点解析 #### 1. 数据结构的选择 - **树形结构**:适用于构建家族树模型,其中每个节点代表一个家庭成员,边则...
### 图形化输出哈弗曼树-数据结构 #### 哈弗曼树简介 哈弗曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度最短的二叉树,或者说其带权路径长度是所有二叉树中最小的。哈弗曼树在数据压缩、编码等领域...
在实际应用中,这个结构图可能采用了树形数据结构来表示中国的行政区域。每个节点代表一个行政单位,如国家为根节点,省份为一级子节点,市为二级子节点,以此类推。这样的结构使得查找和遍历变得非常高效,例如,...
Java3D是一个面向对象的API,其核心概念是场景图(Scene Graph),这是一种树状结构,用于组织和管理3D场景中的各种元素,包括几何体、颜色、材质、光线模型、视点等。这种结构允许开发者以一种直观的方式构建和操纵...