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


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

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


在下文中一共展示了Nodo::getProfundidad方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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

示例2: ejecutarBusqueda

bool BusquedaAmplitud::ejecutarBusqueda()
{
    cola<<nodoInicial;

    while (!cola.empty()) {

        nodosExpandidos<<cola.first();
        cola.pop_front();
        cantidadNodosExpandidos++;

        if (nodosExpandidos.last()->esMeta()) {
            nodoSolucion=nodosExpandidos.last();
            return true;
        }else {
            QList <Nodo*> nodosExpandidosTemporales = nodosExpandidos.last()->expandir();
            Nodo *nodoExp;
            foreach (nodoExp, nodosExpandidosTemporales) {

                if(!esCiclo(nodoExp)){
                    cantidadNodosCreados++;
                    cola<<nodoExp;
                    if(nodoExp->getProfundidad() > profundidadArbol){
                        profundidadArbol = nodoExp->getProfundidad();
                    }
                }else{
                    delete nodoExp;
                    nodoExp = 0;
                }

            }

        }
    }

    return false;
}
开发者ID:GustavoARod,项目名称:dust-cart,代码行数:36,代码来源:busquedaamplitud.cpp


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