C++ 反序列化n元树

C++ 反序列化n元树,c++,tree,C++,Tree,我应该反序列化一个n元树 此代码创建我的树: foodtree.addChildren("Food", { "Plant", "Animal" } ); foodtree.addChildren("Plant", { "Roots", "Leaves", "Fruits" } ); foodtree.addChildren("Animal", { "Fish", "Mammals", "Birds" } ); foodtree.addChildren("Roots

我应该反序列化一个n元树

此代码创建我的树:

    foodtree.addChildren("Food", { "Plant", "Animal" } );
    foodtree.addChildren("Plant", { "Roots", "Leaves", "Fruits" } );
    foodtree.addChildren("Animal", { "Fish", "Mammals", "Birds" } );
    foodtree.addChildren("Roots", { "Potatoes", "Carrots" } );
    foodtree.addChildren("Leaves", { "Lettuce", "Cabbage" } );
    foodtree.addChildren("Fruits", { "Apples", "Pears", "Plums", "Oranges" } );
    foodtree.addChildren("Fish", { "Salmon", "Tuna" } );
    foodtree.addChildren("Mammals", { "Beef", "Lamb" } );
    foodtree.addChildren("Birds", { "Chicken", "Duck" } );
    foodtree.addChildren("Salmon", { "Wild", "Farm" } );
    foodtree.addChildren("Apples", { "GrannySmith", "Gala" } );
其中第一个参数是父参数,第二个参数是初始值设定项列表,它是第一个参数的子参数

我的序列化函数如下所示:(我使用两个函数来完成此操作)

我想写一个反序列化函数,它将接收这个文件并创建一个n元树。在每一行中,.OUT文件中的第一个字必须是父节点,下面的字必须是子节点。我不知道该怎么办。感谢您的帮助


到目前为止,我只有:void Ntree::反序列化(字符串和文件名);:这样想吧

你最初是如何创建这棵树的


执行相同的操作,除了从文件中获取值而不是使用文字值。也可以使用循环而不是单独的addChildren语句。

这样想

你最初是如何创建这棵树的


执行相同的操作,除了从文件中获取值而不是使用文字值。也可以使用循环,而不是单独的addChildren语句。

到目前为止,您几乎什么都没有。你需要真诚地尝试实际完成任务,然后解释仍然存在的问题。到目前为止,你几乎什么都没有。您需要真诚地尝试实际完成任务,然后解释仍然存在的问题。
template<typename T>
void Ntree<T>:: serializeHelper (node* r, ofstream& ofs) 
{
    if(r->child.size() > 0)
        ofs<<r->val <<"     ";

    for(int i=0; i < r->child.size(); i++)
        ofs<<r->child[i]->val <<" ";

    if(r->child.size() > 0) 
    ofs << "\n";

    vector<node*> vt = r->child;

    for (int j = 0; j < vt.size(); j++) 
        serializeHelper(vt[j], ofs);

}


template <typename T>
void Ntree<T>::serialize(std::string filename)
{
    ofstream ofs(filename);
    serializeHelper(root, ofs);
}
Food     Plant Animal 
Plant     Roots Leaves Fruits 
Roots     Potatoes Carrots 
Leaves     Lettuce Cabbage 
Fruits     Apples Pears Plums Oranges 
Apples     GrannySmith Gala 
Animal     Fish Mammals Birds 
Fish     Salmon Tuna 
Salmon     Wild Farm 
Mammals     Beef Lamb 
Birds     Chicken Duck