本文整理汇总了C++中Nodo::esMeta方法的典型用法代码示例。如果您正苦于以下问题:C++ Nodo::esMeta方法的具体用法?C++ Nodo::esMeta怎么用?C++ Nodo::esMeta使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Nodo
的用法示例。
在下文中一共展示了Nodo::esMeta方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ejecutarBusqueda
bool BusquedaA::ejecutarBusqueda()
{
nodoInicial->setHeuristica(calcularHeuristicaAdmisible(nodoInicial));
cola<<nodoInicial;
Nodo* nodoMenor;
while(!cola.empty())
{
int idxMenor = getIndiceNodoFMenor(cola); // obtiene el indice del nodo con menor f en la cola de prioridad
nodoMenor = cola.at(idxMenor); // obtiene el nodo de con menor f de la cola de prioridad
cola.removeAt(idxMenor); // elimina el nodo de menor f de la cola
nodosExpandidos<<nodoMenor; // añade el nodo con menor f a los nodos expandidos
cantidadNodosExpandidos++;
if(nodoMenor->esMeta()){ // se verifica si es meta
nodoSolucion = nodoMenor; // como es meta se asigna a nodoSolucion el nodo solucion
return true;
}else{
QList <Nodo*> nodosExpandidos = nodoMenor->expandir();
Nodo* nodoExp;
foreach (nodoExp, nodosExpandidos) {
if(!esCiclo(nodoExp)){
cola<<nodoExp;
cantidadNodosCreados++;
nodoExp->setHeuristica(calcularHeuristicaAdmisible(nodoExp));
if(nodoExp->getProfundidad() > profundidadArbol){
profundidadArbol = nodoExp->getProfundidad();
}
}else{
delete nodoExp; // elimina solo los nodos que representan un ciclo en el arbol
nodoExp = 0;
}
}
}
}
return false;
}