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。
答案 0 :(得分:1)
答案仍在你的问题中。您可以将这些字符存储在引号内,并在阅读这些字符时,每当遇到引号时,请继续阅读,直至找到下一个引号,然后删除引号。如果你在树中有引号,你可以用其他特殊字符来逃避它们。
答案 1 :(得分:0)
如果要将相当任意的数据结构存储为文本文件,请考虑使用YAML。大多数语言都有编码器/解码器库。
如果这是用于家庭作业,或者您想知道如何自己实施,请使用escape characters的常见想法。如果您不熟悉该概念,请参阅该链接中的示例。
答案 2 :(得分:0)
您必须知道可以使用的分隔符。例如,假设空格是分隔符,即节点数据不包含空格,则可以使用此表示形式存储在文件中:(A(B(D)(E))(C)) 您可以使用任何其他合适的分隔符替换空白区域。
答案 3 :(得分:0)
如果您在节点 - (
或)
中有括号,则必须escape them,例如反斜杠\
。当然,在解析数据时,您始终必须检查反斜杠。这会慢慢解析你的解析器,所以如果速度很重要,你应该选择一个完全不是有效节点字符的分隔符。