saludos !!!
estoy insertándoles valores a un arbol binario de búsquedas, esto es lo que hice :
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
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!!
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.
gracias!!!! era eso....