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!!