当前位置: 首页 > 面试题库 >

Java树数据结构?

尤飞尘
2023-03-14
问题内容

是否有一个良好的可用(标准Java)数据结构来表示Java中的树?

具体来说,我需要代表以下内容:

  • 任何节点上的树都可以有任意数量的子代
  • 每个节点(在根之后)只是一个字符串(其子代也是字符串)
  • 我需要能够获得代表给定节点的输入字符串的所有子代(某种形式的列表或字符串数​​组)
    是否有可用的结构或者我需要创建自己的结构(如果这样的话,实施建议会很好)。

问题答案:

这里:

public class Tree<T> {
    private Node<T> root;

    public Tree(T rootData) {
        root = new Node<T>();
        root.data = rootData;
        root.children = new ArrayList<Node<T>>();
    }

    public static class Node<T> {
        private T data;
        private Node<T> parent;
        private List<Node<T>> children;
    }
}

那是可用于String或任何其他对象的基本树结构。实现简单的树来完成你需要的工作相当容易。

你需要添加的只是添加,删除,遍历和构造方法。该Node是对基本构建块Tree



 类似资料:
  • 给定一棵树,我们如何使用JavaSwing来绘制与我们在一张简单的纸上绘制的相同的东西来理解一棵树?即绘制节点圆圈内的所有节点和值以及将父节点与子节点连接的线程等等。结构如下: 来自https://en . Wikipedia . org/wiki/Tree _(data _ structure)#/media/File:Binary _ Tree . SVG

  • 主要内容:树的结点,子树和空树,结点的度和层次,有序树和无序树,森林,树的表示方法,总结之前介绍的所有的 数据结构都是 线性存储结构。本章所介绍的树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合。                                                                          (A)                                                          

  • 本文向大家介绍数据结构中的R *树,包括了数据结构中的R *树的使用技巧和注意事项,需要的朋友参考一下 基本概念 在数据处理的情况下,R *树被定义为为索引空间信息而实现的R树的变体。 R *树比标准R树的建造成本稍高,因为可能需要重新插入数据。但是生成的树通常具有更好的查询性能。与标准R树相同,它可以存储点和空间数据。R *树的概念由Norbert Beckmann,Hans-Peter Kri

  • 二叉树 二叉树:二叉树是有限个结点的集合,这个集合或者是空集,或者是由一个根结点和两株互不相交的二叉树组成,其中一株叫根的做左子树,另一棵叫做根的右子树。 二叉树的性质: 性质1:在二叉树中第 i 层的结点数最多为2^(i-1)(i ≥ 1) 性质2:高度为k的二叉树其结点总数最多为2^k-1( k ≥ 1) 性质3:对任意的非空二叉树 T ,如果叶结点的个数为 n0,而其度为 2 的结点数为 n

  • 二叉树 L、D、R分别表示遍历左子树、访问根结点和遍历右子树 先序遍历:DLR 中序遍历:LDR 后序遍历:LRD 仅有前序和后序遍历,不能确定一个二叉树,必须有中序遍历的结果 二叉树的性质 性质1:在二叉树中第 i 层的结点数最多为2^(i-1)(i ≥ 1) 性质2:高度为k的二叉树其结点总数最多为2^k-1( k ≥ 1) 性质3:对任意的非空二叉树 T ,如果叶结点的个数为 n0,而其度为

  • 树表示由边连接的节点。 我们将具体讨论二叉树或二叉搜索树。 二叉树是用于数据存储目的的特殊数据结构。 二叉树具有特殊条件,即每个节点最多可以有两个子节点。 二叉树具有有序数组和链表的优点,因为搜索与排序数组一样快,插入或删除操作与链表一样快。 重要条款 以下是关于树的重要术语。 Path - 路径是指沿树边缘的节点序列。 Root - 树顶部的节点称为root。 每个树只有一个根,从根节点到任何节