Минимизация использования памяти при поиске в ширину

В следующем коде я прохожу по графу с помощью поиска в ширину . Код строит граф во время обхода. Это очень большой график с разветвлением из 12. Из-за этого каждый раз, когда глубина поиска в ширину увеличивается, я хочу разрушить слой над ним, чтобы минимизировать использование памяти. . Как я мог разработать алгоритм для этого?

string Node::bfs(Node * rootNode) {
QQueue<Cube *> q;
q.enqueue(rootNode);

while (!(q.empty())) {
    Node * currNode = q.dequeue();
    currNode->constructChildren();
    foreach (Node * child, currNode->getListOfChildren()) {
        q.enqueue(child);
    }
    if (currNode->isGoalNode()) {
        return currNode->path;
    }
}
5
задан dfetter88 2 December 2010 в 04:58
поделиться