2011-12-27 57 views

回答

27

下面是一些你可能会发现有用的一些库:

arboreal.js,一个“微型库用于遍历和处理树状数据结构”中的Node.js和浏览器。

buckets,一个“完整的,完全测试和记录的数据结构库”,包括BST,一堆和其他一些好东西。

+1

太糟糕了树栖并没有维持下去了,3个引入请求现在正等待2年。桶看起来真正好,但从bst appart它并不真正提供树数据结构 – Overdrivr

+2

如@JNS所示的TreeModel似乎是最好的选择。 –

+1

在我为卢旺达非政府组织实体非洲工作的一个项目中,树状结构是跟踪费用和捐赠(您的费用或捐赠属于类别,食品,特殊照顾等)的重要组成部分。基于这一经验,我开发了[tree-util节点包](https://www.npmjs.com/package/tree-util)。我希望当你想使用树结构时它可以是有帮助的。特别是如果你将数据与你的树结构联系起来。 –

4

希望我之前看过解决方案,因为这些库看起来很有帮助!

这是一个我放在一起,这是一个替代。用于遍历,操纵和加载来自自引用扁平表的分层树结构,而不是用于平衡二叉树。

DataStructures.Treerelated blog post

22

两个库添加到列表是:

  • t.js - 似乎是很好的遍历;
  • TreeModel - 操纵和遍历。

免责声明:我建的TreeModel

4

我不知道你的需求,所以这是一个在黑暗中拍摄。 我通常使用(轻量级的JavaScript)数组的数组,像这样:

node[i] = [parent, firstChild, secondChild, ... nthChild]; 
2

尝试DOM

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

请添加一些关于此代码为何帮助OP的解释。这将有助于提供一个很好的答案。有关更多信息,请参阅[答案]。 –

+4

我不反对这个答案。 DOM是一个树结构,与XML和JSON兼容。删除节点,添加儿童,包含儿童的儿童。添加一点CSS,你可以很容易地看到一个好看的treeview结构。此外,该问题没有指定他们想要的窗口小部件外观。 –

+0

这是一个很好的答案,为什么这是downvoted? –

0

我写的面向树库中的一个简单的数据称为data-tree。您可以使用它以BFS/DFS方式创建,遍历和搜索树。您也可以从树中导入/导出数据。在结账的详细文档:http://cchandurkar.github.io/Data-Tree/

要在节点中使用它似乎npm install data-tree

+0

关于堆栈溢出的离线资源或工具推荐请求不属于主题。如果你回答它们,你特别强调了Stack Overflow是回答这些问题的好地方。不是这样。即使你知道一个很好的答案,也不要回答这些问题,因为大多数答案都会被高度评价(“我个人喜欢......”)。您可以打开关于该问题的标志对话,并在** off-topic **类别下或[help/on-topic]中查看完整的原因。你甚至不应该在评论中回答,因为效果与实际答案类似。 –

+0

@Kyll,感谢您的关注。我不想强化任何这样的信念。如果我删除我的答案会适合吗? –