如何序列化BST?最有效的方法是什么?现在,这太笼统了,所以让我解释一下我的意思。

这是一些伪伪代码:

public int[] serialize(root){
    preorder traversal
    convert node to binary representation
    add the binary representation to an array
    send array via stream
}


要么

public int serialize(root){
    preorder traversal
    convert node to binary representation
    send the binary representation via stream
}


我的问题是-创建一个数组并将其发送满位,这样有效吗?还是我应该跳过整个数组的想法,每当转换一个节点时,将其发送以反序列化它?也许这两种实现都是愚蠢的。任何帮助,将不胜感激。

最佳答案

我建议您也看看Google协议缓冲区
https://developers.google.com/protocol-buffers/docs/overview

07-24 20:44