有哪些可用的JavaScript树数据结构?

53

有没有适用于javascript树形结构的好库?明确一下,我需要的是数据结构中的“tree”,而不是显示模型。

6个回答

38

以下是一些可能会对您有所帮助的库:

arboreal.js 是一个用于在node.js和浏览器中遍历和操作树状数据结构的微型库。

buckets 是一个完整、经过全面测试和记录的数据结构库,包括BSTs、堆以及其他一些好东西。


1
很遗憾arboreal似乎不再维护了,三个Pull请求已经等待两年了。Buckets看起来非常好,但除了BST之外,它并没有提供真正的树数据结构。 - Overdrivr
2
TreeModel,正如@JNS所指出的那样,似乎是最佳选择。 - Faisal Mq
1
在我为卢旺达非政府组织Solid Africa工作的项目中,树形结构是跟踪开支和捐赠的重要部分(您的费用或捐赠属于某个类别,如食品、特殊护理等)。基于这种经验,我开发了tree-util node package。我希望它在您想要使用树形结构时能够提供帮助,尤其是如果您将数据与树形结构相关联的话。 - Kristian Abrahamsen
请查看 https://dev59.com/QWcs5IYBdhLWcg3wdjzR#58136016 获取自定义解决方案。 - Kivylius

32

需要添加到列表的两个库是:

  • t.js - 似乎非常适合遍历;
  • TreeModel - 用于操作和遍历。

免责声明:我建立了TreeModel。


很棒的库,正在积极维护,我会使用它! - pczern

6

尝试使用DOM

var o = document.createElement( 'WHAT_YOU_WANT' )
// o.appendChild( ... )

13
请说明这段代码为什么有助于提问者,这可以提供一个好的答案。更多信息请参见[答案]。 - Heretic Monkey
7
我不反对这个答案。DOM是一种树形结构,与XML和JSON兼容。可以删除节点、添加子节点,子节点中还可以包含子节点。再加上一些CSS,就可以轻松创建一个好看的树形视图结构。此外,问题并没有明确指定他们想要的小部件外观。 - John Smith
这是一个好答案,为什么被踩了? - John Smith
1
不是所有的树都生长在浏览器中,尽管能够使用经过验证的实现会很好。 - Bet Lamed
1
不是一个好的答案,它不是一个通用的树形结构,并且依赖于具有特定副作用的特定实现。 - Cranio
我不认为DOM可以被视为JavaScript数据结构。但是我给这个答案点赞,因为我喜欢那些有创意的人。 - pouya

5

希望之前能看到那个解决方案,因为那些库看起来很有用!

这是我制作的一种替代方法。旨在遍历、操作和加载自引用平面表中的分层树结构,而不是平衡二叉树。

数据结构.Tree相关博客文章


5
我不确定您的需求是什么,所以这只是一次尝试。 通常我使用(轻量级JavaScript)数组的数组,像这样:
node[i] = [parent, firstChild, secondChild, ... nthChild];

2
我写了一个简单的面向数据的树库叫做data-tree。你可以使用它来创建、遍历和搜索树,支持BFS/DFS方式。你也可以导入/导出树中的数据。请查看详细文档:http://cchandurkar.github.io/Data-Tree/
要在节点中使用它,请运行npm install data-tree

在Stack Overflow上,关于外部资源或工具的推荐请求是不适合的话题。如果您回答了这些问题,您会进一步加强人们对Stack Overflow是一个回答此类问题的好地方的信念,而事实并非如此。即使您知道一个好的答案,请不要回答这些问题,因为大多数答案都会带有高度主观性(“我个人喜欢...”)。您可以在问题上打开标志对话框,在“不适合主题”类别下查看完整的关闭原因,或者在[帮助/适合主题]中查看。您也不应该在评论中回答,因为其效果类似于实际答案。 - Kyll
@Kyll,感谢您提醒我。我不想强化任何这样的信念。如果我删除我的回答是否合适? - Chaitanya Chandurkar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接