哪个是最适合建模分层(包含关系)内容的树数据结构。我的语言有点不正式,因为我没有太多关于这些的理论背景
我选择的语言是golang(Golang),所以可用的库是有限的。请在不考虑最符合上述要求的语言的情况下给出建议。
http://godashboard.appspot.com/列出了一些可用的树库。不确定它们的质量和活跃程度。我读了上帝
请告知所需的任何其他信息。
答案 0 :(得分:3)
由于只有数百个节点,因此只需使结构与您所描述的相同即可。
可以进行2路遍历,因为父节点和子节点都是已知的。查找父母和查找孩子的情况相同。
如果没有地图,可以通过遍历整个树来查找id。或者您可以使用地图快速找到节点。
添加节点很简单,因为每个节点都有一个列表。重新排列也很简单,因为您可以在子节点列表中自由添加/删除并重新分配父节点。
我正在从与语言无关的方面回答这个问题。这是一个没有任何限制的树结构,因此实现并不那么受欢迎。
答案 1 :(得分:0)
我认为B-Tree可以满足您的需求。 http://en.wikipedia.org/wiki/B-tree
第1,2,3点:B-Tree固有地支持这一点。 (多个孩子,独特的父母,允许插入/删除元素
第4,5点:默认情况下,每个节点都会有其子节点的指针。此外,您可以维护每个节点的父指针。您可以借助这些指针实现BFS / DFS的搜索/遍历操作
Pomit 6:如果您不允许重复记录,则取决于插入方法的实现
Pont 7,8:不是问题,因为你提到你只有数百条记录。虽然B-Tree也是非常好的外部磁盘存储数据结构。