树的数据结构

时间:2011-10-07 11:04:17

标签: python data-structures functional-programming tree

我注意到Python在处理数据结构方面有很多专长(各种迭代器,生成器,列表推导等)。

您能否告诉我一些对pythonic style中的树有用的数据结构?树中的节点将包含一些数据,并且会有诸如childrensiblings之类的经典操作。您可以使用一些智能示例来呈现一些处理树的python特殊功能(例如,编程的功能方法) )

4 个答案:

答案 0 :(得分:1)

您可以使用ElementTree API,该API在Python standard libraryLXML库中实施。它适用于XML处理,但您也可以使用它来处理树状结构数据(并免费获取XML序列化)。

答案 1 :(得分:1)

查看NetworkX的文档,这是一个用于处理基于图形的数据结构(包括树)的python工具包。

答案 2 :(得分:1)

ETE toolkit实现了树数据结构的许多高级操作,从遍历函数或节点注释到树图像生成。您可能需要查看its tutorial

答案 3 :(得分:0)

这是一个用于python的clojure的zip库的端口。

https://github.com/trivio/zipper

这是一个不可变的数据结构,它总是为每个操作返回一个新结果。 非常适合函数式编程,或者您希望保留对树进行编辑的历史记录。

您可以操作任何可以用3个函数描述的树:

branch(node):如果节点可以有子节点,则返回true

children(node):返回节点子节点的元组

make_node(node,children):构造一个新节点,以便在修改子节点后替换当前节点。