Python:如何保存二叉树?

| 我想知道如何保存以前创建的二叉树。 有人知道怎么做吗? 非常感谢。 PD:这里有一个有关如何实现二叉树的链接,我正在使用此pice od代码: http://code.activestate.com/recipes/286239-binary-ordered-tree/     
已邀请:
        一种简单的解决方案: -扩展当前类以具有
load
save
方法 -为每个节点添加唯一的ID -实现自上而下的解析,并使用类似的结构将每个节点保存到xml中
<node id=\"mynicelycrafteduniqueid\">
    <data>...</data>
    <leftChild>childuniqueId</leftChild>
    <rightChild/> <!-- no right child -->
</node>
您已经完成了(如果至少可以轻松地序列化数据),第一个节点就是您的树根。 不要忘记肥料,你的树将重生,更加美丽     
        有不同类型的具有不同规则的二叉树类型,可以帮助简化反序列化,但是基本上,只需遍历树并按顺序输出每个节点,然后重新创建它,读入文件并重新生成结构即可。 为每个节点包括指示其是否是叶节点的标记可能会有所帮助(然后该标记告诉您下一个元素是否属于当前节点之下或之上。或者,您可能希望有一个标记来指示下一个元素) NULL节点,例如,这可能对具有左分支但无右分支的节点有所帮助。 例如:
   A
 B   C
D E    F
可以表示为:
A B D - - E - - C - F - -
或作为:
A[B[D,E],C[-,F]] 
让我想起了我上大学时曾做过的计算机科学作业。     
        您可以实现一个小型数据库(例如sqlite3)以使结构持久化。 例:
Node: {nodeId(PK), [leftChildId](FK), [rightChildId](FK)}
leftChildId, rightChildId references Node;
与Bruce的答案类似,您将实现
save
/
load
函数。     
        另一个想法: 像这样的二叉树:
    A
   / \\
  B   C
 / \\   \\
D   E   F
可以表示为:
A B C
B D E
C F
或者,更抽象地讲:
<parent-id><separator><child-1-id>(<separator><child-2-id>)?<newline>
这取决于节点的复杂程度。如果它们不是字符串,数字或布尔值,则仅腌制整棵树可能更容易,更快。     

要回复问题请先登录注册