Python:如何保存二叉树?

Pet*_*one 7 python persistence binary-tree

我想知道如何保存我之前创建的二叉树.有谁知道怎么做?非常感谢.

PD:这里有一个关于如何实现二叉树的链接,我正在使用这个pice od代码:http: //code.activestate.com/recipes/286239-binary-ordered-tree/

Bru*_*uce 5

一个简单的解决方案: - 将当前类扩展为有一个loadsave方法 - 为每个节点添加一个唯一的 id - 实现进行自顶向下的解析并将每个节点保存到具有类似结构的 xml 中

<node id="mynicelycrafteduniqueid">
    <data>...</data>
    <leftChild>childuniqueId</leftChild>
    <rightChild/> <!-- no right child -->
</node>
Run Code Online (Sandbox Code Playgroud)

你已经完成了(如果数据至少很容易序列化),第一个节点是你的树根。

不要忘记施肥,你的树会重生更美丽


tyl*_*erl 5

有不同类型的二叉树具有不同的规则可以帮助简化反序列化,但基本上,只需遍历树并按顺序输出每个节点,然后重新创建它,读入文件并重新生成结构.

为每个节点包含标记可能会有所帮助,这些标记指示它是否是叶节点(然后告诉您下一个元素是否属于当前节点之下或之上.或者,您可能希望有一个标记指示NULL节点例如,这可能有助于具有左侧但不是右侧分支的节点.

例如:

   A
 B   C
D E    F
Run Code Online (Sandbox Code Playgroud)

可以代表:

A B D - - E - - C - F - -
Run Code Online (Sandbox Code Playgroud)

或者:

A[B[D,E],C[-,F]] 
Run Code Online (Sandbox Code Playgroud)

让我想起了我在大学时所做的计算机科学作业.