`
ganglong99
  • 浏览: 162033 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

用java实现文本形式的树状结构图

阅读更多

    在网上看到一段不错的代码,用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

分享到:
评论
2 楼 duqiangcise 2011-01-03  
草。我怎么跑到这里来了。
1 楼 angwan 2009-09-13  

相关推荐

    Java实现文本形式的树状结构显示

    在Java编程中,有时我们需要将数据结构以可视化的形式展示出来,例如树状结构。这个题目涉及到了如何在控制台以文本形式展示一个树状结构。在这个例子中,我们使用了一个名为`Folder`的类来表示树的节点,每个节点...

    图片式树形结构图总结.zip

    例如,PlantUML是一个开源项目,它支持用简单文本描述生成各种图表,包括树形结构图。在Java项目中,我们可以使用 PlantUML 的 API 或者命令行工具,将树形数据转换为可读性强、美观的图像。 在压缩包中的"新建...

    JAVA实现L-System树形绘制

    ### JAVA实现L-System树形绘制 #### 一、L-System简介 L-System(Lindenmayer System)是一种形式语言系统,由匈牙利理论生物学家Aristid Lindenmayer于1968年提出。该系统主要用于模拟植物生长过程中的形态变化,...

    将xml解析成树状结构显示

    在IT行业中,XML(eXtensible ...通过使用适当的解析器和编程技巧,我们可以高效地处理XML文档,将其转换为易于理解和操作的树形结构。对于给定的Java源码,深入理解并运行这些代码可以帮助我们更好地掌握这一过程。

    用java实现的四叉树编码源码

    首先,四叉树(Quadtree)是一种树形数据结构,用于分割二维空间。每个节点代表一个矩形区域,可以有四个子节点,分别对应该矩形的左上、右上、左下和右下四个象限。这种结构便于快速查询和组织空间中的对象,常用于...

    Java目录树控件

    从根目录开始,使用递归函数逐级访问每个子目录,收集文件和子目录的信息,构建树形结构的数据模型。 3. **数据结构**:在Java中,可以使用`java.util.TreeMap`或自定义的节点类来构建树结构。每个节点代表一个目录...

    文件/文件夹操作(读取,删除,添加)

    6、 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求: 1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状...

    android树形结构

    在本篇文章中,我们将深入探讨如何在Android中实现树形结构,并讨论其在不同场景下的应用。 首先,树形结构的基本概念是每个节点可以有零个或多个子节点,除了根节点之外,每个节点都有一个父节点。在Android中,...

    树状结构例子

    在压缩包中的"tree"文件可能是一个表示树形结构的文本文件,其中包含了节点信息,比如节点的名称、类型(是叶节点还是内部节点)、子节点列表等。通过分析这个文件,我们可以学习如何创建和操作树结构,以及如何将其...

    java源码包---java 源码 大量 实例

     用JAVA编写的指针式圆形电子钟,效果图如下所示,其实代码很简单,希望对你有帮助。 Message-Driven Bean EJB实例源代码 2个目标文件 摘要:Java源码,初学实例,EJB实例  Message-Driven Bean EJB实例源代码,演示...

    javas script 树形菜单源码

    - **递归**:在构建树形结构时,递归是常用的方法,因为它可以方便地处理层级关系。 2. **树形菜单的实现方式** - **纯CSS实现**:通过CSS伪类和`:checked`属性,结合HTML的`&lt;input type="checkbox"&gt;`和`&lt;label&gt;`...

    ExtJS树形结构.docx

    在EXTJS中,树形结构(Tree)是一种用于展示层级数据的组件,它允许用户以图形化的方式浏览和操作层次关系。以下是对标题和描述中所述EXTJS实现简单树状结构的知识点的详细说明: 1. **Ext.onReady**:这是EXTJS...

    xml文件以树形结构显示

    要将XML以树形结构显示,通常会使用XML解析器,如DOM(Document Object Model)解析器,它将整个XML文档加载到内存中形成一棵树,每个节点代表XML的一个部分。在GUI应用中,这棵树可以映射到树形控件上,用户可以...

    Java读取word文档内容并输出成网页(含图片,公式)

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于处理Microsoft Office格式的文件,包括Word、Excel和PowerPoint等。在这个场景中,我们将重点讨论如何使用Java POI读取Word文档并将其内容转换为HTML网页...

    java数据结构之家族亲属关系查询系统.doc

    常见的数据结构如树形结构(如二叉树或N叉树)、图等,在此场景下都有其适用性。 ### 二、关键知识点解析 #### 1. 数据结构的选择 - **树形结构**:适用于构建家族树模型,其中每个节点代表一个家庭成员,边则...

    图形化输出哈弗曼树-数据结构

    ### 图形化输出哈弗曼树-数据结构 #### 哈弗曼树简介 哈弗曼树(Huffman Tree),又称最优二叉树,是一种带权路径长度最短的二叉树,或者说其带权路径长度是所有二叉树中最小的。哈弗曼树在数据压缩、编码等领域...

    中国省市县结构图.zip

    在实际应用中,这个结构图可能采用了树形数据结构来表示中国的行政区域。每个节点代表一个行政单位,如国家为根节点,省份为一级子节点,市为二级子节点,以此类推。这样的结构使得查找和遍历变得非常高效,例如,...

    Java3D 中加载CAD 和3DMAX 图形文件的实现方法.pdf

    Java3D是一个面向对象的API,其核心概念是场景图(Scene Graph),这是一种树状结构,用于组织和管理3D场景中的各种元素,包括几何体、颜色、材质、光线模型、视点等。这种结构允许开发者以一种直观的方式构建和操纵...

Global site tag (gtag.js) - Google Analytics