En mi el siguiente código, estoy atravesando un gráfico a través de breadth first search
. El código construye el gráfico mientras está atravesando. Este es un gráfico muy grande, con un ventilador de 12. Debido a esto, cada vez que aumenta la profundidad del breadth first search
, quiero destruir la capa superior para intentar minimizar el uso de la memoria. ¿Cómo podría diseñar un algoritmo para hacerlo?Minimizar el uso de memoria de una primera búsqueda de ancho
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;
}
}
'el código construye el gráfico mientras se está atravesando. Nos encanta ver ese código. Se supone que un BFS atraviesa un gráfico ya existente. – codaddict
He editado la publicación para incluir una muestra de código. – dfetter88
una corrección que sugeriría es ... debería comprobar si el 'currentNode' es el' GoalNode' inmediatamente una vez que lo dequeue. Guardando una construcción/enqueue inútil de niños – st0le