递归-按顺序向列表中添加树数据

C++ Recursion - adding tree data to list in order

本文关键字:添加 数据 列表 顺序 递归      更新时间:2023-10-16

我的代码如下-我试图返回到我的主飞机列表,我从二叉树得到的顺序(从最小到最大)。对于下面的代码,我获得了两次根节点。我已经做了好几个小时了……有什么建议吗?

谢谢,夏洛特

std::list<Aircraft> Tree::buildList()
{
    std::list<Aircraft> aircraftList;
    if (_root != 0)
    {
        aircraftList = buildListHelp(_root, aircraftList);
        aircraftList.push_front(*_root->getAircraftData());     
    }
    return aircraftList;
}
std::list<Aircraft> Tree::buildListHelp(Node* node, std::list<Aircraft> aircraftList)
{
    //aircraftList.push_back(*node->getAircraftData())
    /*if (node->getLeft() != 0)
    {*/
    if (node==0)
        return aircraftList;
    buildListHelp(node->getLeft(), aircraftList);
    //}
    aircraftList.push_back(*node->getAircraftData());
    /*if (node->getRight() != 0)
    {*/
    buildListHelp(node->getRight(), aircraftList);  
    //}
    return aircraftList;
}

假设_root被声明为

Node* _root;

你按了两次键:

aircraftList.push_front(*_root->getAircraftData());    
aircraftList.push_back(*node->getAircraftData());

第一次调用buildListHelp