0

我的代码在下面 - 我正在尝试将我从二叉树中按顺序(从最小到最大)获取的飞机列表返回到我的主目录。对于下面的代码,我获得了两次根节点。我已经为此工作了几个小时......有什么建议吗?

谢谢,夏洛特

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;
}
4

1 回答 1

0

假设 _root 被声明为

Node* _root;

你推了两次:

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

在第一次调用 buildListHelp

于 2013-05-09T23:51:22.897 回答