问题标签 [tree-structure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
517 浏览

grails - 这种树结构的理想 Grails 类域是什么

我正在开发一个需要带有子类别的类别的网站。

我当前的域类是:

但这给了我一个错误:

类 [class com.abc.Category] ​​中的属性 [children] 是双向的一对多,在反面有两个可能的属性。要么命名关系 [类别] 另一侧的属性之一,要么使用“mappedBy”静态定义关系映射的属性。示例:静态 mappedBy = [children:'myprop']

0 投票
0 回答
942 浏览

tree-structure - android实现中的N级树结构

我想在android中实现一个N级树结构。我已经浏览了 ExpandableListView,但它只适用于 2 或 3 个级别。我的要求如下...

您对在 Android 中实现这一点有什么建议吗?示例代码会更有帮助。提前致谢。

0 投票
3 回答
262 浏览

c - 是否存在 XML 的二进制替代方案

XML 是以树结构方式组织信息的一种方式。然而,我正在寻找一种机制,让我的软件应用程序可以方便、高效地存储、检索和操作以树结构方式组织的任意信息。

由于我的应用程序需要存储的大部分信息都是二进制的,没有明显的文本形式,并且在文本和二进制形式之间来回转换的开销太大,我更喜欢让我的应用程序存储、检索和操作每个信息元素的东西以其本机 [通常是二进制] 形式。

我的应用程序将以多种方式实时处理信息结构,因此这些过程必须高效。一个典型和常见的例子:我的应用程序将移动元素,并且该元素下方的每个子元素(它的“子元素”)都应该自动移动(实际上没有数据在内存中移动)。我想这将由具有“父级”的每个元素来完成,因此只需更改父级的 ID 就会改变整个子层次结构在整个树结构中的位置。或类似的东西。

底线:是否存在 XML 的任何二进制替代品,尤其是那些将二进制数据保留为本机形式的替代品?

我不想将二进制数据嵌入 XML。 我更喜欢包含(C 兼容)例程函数库的解决方案,以添加项目、删除项目、操作结构、保存、加载等。

0 投票
2 回答
2720 浏览

java - 在 Java 中解析目录结构

我必须解析以下文本文件中给出的一组目录:

上面的文件以这种方式描述了目录结构:

假设以注释开头的行#,我现在有以下代码:

因此,这只是显示目录的工作,也不是以分层方式来解析它们。它只是以这种方式给出文本表示的输出:

如果它是 PHP,我可以将它转换为 JSON 节点,并可以以分层方式解析父节点或兄弟节点,但我不确定我应该如何在 Java 中进行此操作。任何提醒对我来说都很棒。

现在,我以这种方式为树结构创建了一个类:

但我不确定如何将目录链接为主 Java 程序中的一种链接列表。这里的任何帮助将不胜感激。所以,当我在这里做某种树结构时,我想实现类似目录遍历程序的东西。

说,如果我将输入作为DirectoryParser C,那么它应该输出如下内容:

这可能与我目前的方法吗?有人可以指导我如何实现这一目标吗?提前致谢。

免责声明:我经历了Java 树数据结构?,但我应该在一个文件中得到一些简单的东西,而不使用任何外部插件。:(

0 投票
2 回答
126 浏览

java - 外部数据库实现树状/哈希映射结构

除了 Microsoft Access,我可以使用哪些外部数据库来处理我的 java 应用程序?我需要一个树状结构或哈希图,而不是关系表。

0 投票
2 回答
44 浏览

ios - 如何将委托更改为对象的实例

我是 ObjectiveC 的新手,正在尝试按照本文所述解析 XML 文件:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/XMLParsing/Articles/ConstructingTrees.html

麻烦的是,我不明白文章在第 3 步中的意思是“创建和初始化对象的方法也将其设置为 NSXMLParser 实例的新委托”。

这需要向 MyElement 类添加一个方法,还是将代码添加到顶级对象中?

任何人都可以给出他们在这里的意思的代码示例吗?

0 投票
1 回答
555 浏览

ios - 树状结构TableView中向上遍历到叶子节点iOS

我被困在我想从表中删除特定行对象的地方,但它是动态树结构意味着可以使用所有表方法随时创建、删除、重新排序等对象。

树结构是动态的,因此如何到达需要删除 的叶子对象中间对象。遍历所有分支

这里可以是任意数量的节点、子节点、父节点。但我需要遍历所有节点到所有叶子节点

所以,我的问题是删除任何节点?

如果您对此问题有想法、建议,以便您的解决方案被接受。

提前致谢。

树示例如下:

在此处输入图像描述

0 投票
1 回答
1475 浏览

python - python中实例方法中的递归

我正在尝试定义一种递归方法来遍历树的所有节点。我将树定义如下:

我有以下有效的功能:

如何将其转换为实例方法?

这将导致Max recursion depth error...

一个。这是您如何实现递归方法的吗?
湾。这里有理由使用yield吗?
C。这里有理由使用@staticmethod哪个接收Tree实例?

0 投票
2 回答
2919 浏览

javascript - 如何将数组转换为 N 叉树?

我有一个数组,需要将其转换为 N 叉树。我知道 N 的值和节点的总数。

我在下图中给你一个例子。N 叉树应该如图所示排序。

链接到这里的图片

我想不通。我需要一个算法来做到这一点。我正在编写的程序是用 javascript 编写的,但伪代码的答案也很好。

感谢你的帮助!

[已编辑]

我从这里找到了使用算法的解决方案:Construct a complete K-ary tree from preorder traversal

0 投票
1 回答
341 浏览

sql - 在 SQL 数据库中存储复杂的自引用树结构的最有效方法是什么?

我知道并在过去使用过两种基本树结构的方法:邻接列表和嵌套集。我了解这些方法的几个优点和缺点 - 例如,邻接列表更新速度快但查询速度慢,嵌套集则相反(更新速度慢,查询速度快)。

但是,我需要能够存储更复杂的树状结构。描述这一点的最好方法是使用人类家庭关系。我的第一个想法是每个元素都可以有一个“祖先”树和一个“后代”树。但是,这种方法会有很大的冗余,因为使用下面的示例,Cameron 和 Kelly 都将共享 Bob 的所有祖先树(并且更新将更加耗时,因为对树的插入实际上必须插入多棵树)。我的第二个想法是包含树引用。例如,假设 Alice 有她自己的祖先树。来自 Cameron 的祖先树的 (4,5) 元素和来自 Kelly 的祖先树的 (2,3) 元素都将简单地引用 Alice 的祖先树。第二种方法需要更少的数据存储,将体验更快的更新(仅更新单个树而不是多个树)并且将保留查询大型树结构的速度优势(尽管查询这种自引用嵌套集的 SQL比较复杂)。然而,第二种方法的一个缺点是数据变得“碎片化”(很像硬盘驱动器上的 inode)。

对于第二种方法,我正在可视化多个嵌套集合,它们彼此堆叠在一起,某些节点沿着 z 索引“画一条线”到另一个平面上的节点。

请注意,以上只是一个示例——我实际上并不是在存储人际关系,而是在存储复杂的树状数据。存储如此复杂的层次结构的原因有很多,所以我会让你尽情想象!

问题:在 SQL 数据库中存储复杂的自引用树结构的性能方面(更新和选择)最有效的方式是什么?我特别指的是 PostgreSQL,但如果你有替代品(甚至是 SQL 本身),我也愿意听到。