Pet*_*one 7 python persistence binary-tree
我想知道如何保存我之前创建的二叉树.有谁知道怎么做?非常感谢.
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>
Run Code Online (Sandbox Code Playgroud)
你已经完成了(如果数据至少很容易序列化),第一个节点是你的树根。
不要忘记施肥,你的树会重生更美丽
有不同类型的二叉树具有不同的规则可以帮助简化反序列化,但基本上,只需遍历树并按顺序输出每个节点,然后重新创建它,读入文件并重新生成结构.
为每个节点包含标记可能会有所帮助,这些标记指示它是否是叶节点(然后告诉您下一个元素是否属于当前节点之下或之上.或者,您可能希望有一个标记指示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)
让我想起了我在大学时所做的计算机科学作业.