将二叉树存储在文件中

时间:2012-05-23 08:09:41

标签: file binary-tree store

How to store a binary tree in a file & then read back.(Its not necessarily a BST)

               A
            /     \
          B        C
        /   \
       D    E

为此,我们可以将(A(B(D),(E)),(C))用于将其存储在文件中。 但是如果你有'(',','树节点数据中的字符。那么如何存储它以便我们可以检索它并构建原始BT。

4 个答案:

答案 0 :(得分:1)

答案仍在你的问题中。您可以将这些字符存储在引号内,并在阅读这些字符时,每当遇到引号时,请继续阅读,直至找到下一个引号,然后删除引号。如果你在树中有引号,你可以用其他特殊字符来逃避它们。

答案 1 :(得分:0)

如果要将相当任意的数据结构存储为文本文件,请考虑使用YAML。大多数语言都有编码器/解码器库。

如果这是用于家庭作业,或者您想知道如何自己实施,请使用escape characters的常见想法。如果您不熟悉该概念,请参阅该链接中的示例。

答案 2 :(得分:0)

您必须知道可以使用的分隔符。例如,假设空格是分隔符,即节点数据不包含空格,则可以使用此表示形式存储在文件中:(A(B(D)(E))(C)) 您可以使用任何其他合适的分隔符替换空白区域。

答案 3 :(得分:0)

如果您在节点 - ()中有括号,则必须escape them,例如反斜杠\。当然,在解析数据时,您始终必须检查反斜杠。这会慢慢解析你的解析器,所以如果速度很重要,你应该选择一个完全不是有效节点字符的分隔符。