Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: 01munrra en 20 Junio 2011, 03:44 AM

Título: problemas con arbole binario de busquedas!!
Publicado por: 01munrra en 20 Junio 2011, 03:44 AM
saludos !!!

estoy insertándoles valores a un arbol binario de búsquedas, esto es lo que hice :

Código (cpp) [Seleccionar]


struct Resumen_Paciente
{
string Clave;
int Total_resNormales;
int Total_resAnormales;
};

typedef ArbolBB<Resumen_Paciente> arbolbb;
typedef nodo<Resumen_Paciente> *ApuntadorBB;

void Resumen_Resultado(arbolbb &arbolBB, Pila<OrdenExamen> &pila,ListaDob<Det_Examen> *listaDetalle)
{
  Pila<OrdenExamen> aux;
  nodo2<Det_Examen> *p;
  ApuntadorBB ap;
  OrdenExamen ObjOrden;
  Det_Examen ObjDetalle;
  Resumen_Paciente ObjResumen;
  int acumNormal = 0;
  int acumAnormal = 0;

  ap = arbolBB.ObtRaiz();
  while( !pila.Vacia() )
   {
    pila.Remover(ObjOrden);
    aux.Insertar(ObjOrden);
    p = listaDetalle->ObtPrimero();

    do
     {
        if( ObjDetalle.getValor() == "normal" )
         {
          acumNormal++;
          p = listaDetalle->ObtDer(p);
         }
        else
         {
          acumAnormal++;
          p = listaDetalle->ObtDer(p);
         }
     } while( p != listaDetalle->ObtPrimero() );

    ObjResumen.Clave = ObjOrden.getCedula();
    ObjResumen.Total_resAnormales = acumNormal;
    ObjResumen.Total_resNormales = acumAnormal;

    arbolBB.Insertar(ap,ObjResumen);
   }
  arbolBB.AsigRaiz(ap);
}



y me da los siguientes errores:

In file included from ArbolBB.h:18,
                 from main.cpp:9:
ArbolBB.cpp: In member function 'bool ArbolBB<Tipo>::Insertar(nodo<Tipo>*&, Tipo) [with Tipo = Resumen_Paciente]':
main.cpp:752:   instantiated from here
ArbolBB.cpp:54: error: no match for call to '(std::string) ()'
ArbolBB.cpp:54: error: no match for call to '(std::string) ()'
ArbolBB.cpp:57: error: no match for call to '(std::string) ()'
ArbolBB.cpp:57: error: no match for call to '(std::string) ()'

// este es el metodo del error esta en la clase ArbolBB.cpp

Código (cpp) [Seleccionar]


template <class Tipo>
bool ArbolBB<Tipo>::Insertar(nodo<Tipo>* &p,Tipo valor) //El insertar lo hace en las hojas
{
  Apuntador auxp,nuevo,ant;
  Tipo auxiliar;
  auxp=p;

  nuevo = CrearNodo(valor);
  if (p==NULL)        //si esta vacio el arbol
            p=nuevo;
  else
    while (auxp!=NULL)
      {
       auxiliar = ObtInfo(auxp);
       if  (valor.Clave() == auxiliar.Clave())
               return false;
      else
           if  (valor.Clave() < auxiliar.Clave()) {
             ant=auxp;
             //auxp=ObtIzq(auxp);
             auxp = auxp->Izq; //si puedo hacer esto
             if (auxp==NULL)
               InsHijoIzq(ant,valor);       }
        else  {
             ant=auxp;
            auxp=ObtDer(auxp);
             if (auxp==NULL)
               InsHijoDer(ant,valor);      };
       };
  return true;

};



no entiendo el error, les agradezco su ayuda!!
Título: Re: problemas con arbole binario de busquedas!!
Publicado por: Acermax en 20 Junio 2011, 04:05 AM
Clave no es una función, es un string. En cambio tu operas como si fuera una función.

valor.Clave()

Simplemente quítale los paréntesis.
Título: Re: problemas con arbole binario de busquedas!!
Publicado por: 01munrra en 20 Junio 2011, 06:36 AM
gracias!!!! era eso....