当前位置: 首页>>代码示例>>C++>>正文


C++ Nodo::expandir方法代码示例

本文整理汇总了C++中Nodo::expandir方法的典型用法代码示例。如果您正苦于以下问题:C++ Nodo::expandir方法的具体用法?C++ Nodo::expandir怎么用?C++ Nodo::expandir使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Nodo的用法示例。


在下文中一共展示了Nodo::expandir方法的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;
}
开发者ID:GustavoARod,项目名称:dust-cart,代码行数:38,代码来源:busquedaa.cpp


注:本文中的Nodo::expandir方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。