Problemas con imprimir un arbol binario de busqueda junto a una lista simple!!

Iniciado por 01munrra, 23 Junio 2011, 01:11 AM

0 Miembros y 1 Visitante están viendo este tema.

01munrra

Saludos!!

estoy haciendo un funcion que me imprima un arbol binario  de busqueda usando recursividad junto a una lista simple,,, fijense cada estructura tiene los siguientes datos.

arbolBB tiene los siguientes datos = clave(cedula), total de examenes anormales y total de examenes normales;

listaPaciente tiene los siguientes datos= cedula, nombre,apellidos, edad, estatura, numero de historia

y lo que quiero que esta funcion hage es lo siguiente:

-imprima el primer valor del arbol binario de busqueda, una quiero que agarre el parametro clave que es una cedula de cada paciente y esta cedula lo ubique en una lista de paciente, una ves que lo encuentre, este imprima los datos personales de ese paciente...

y lo que hice fue esto:

Código (cpp) [Seleccionar]

void Imprimir_General(arbolbb &arbolBB, ApuntadorBB ap, Lista<Paciente> &listaPaciente)
{
nodo<Paciente> *p;

if( arbolBB.Vacio() )
    cout << "Actualmente no hay Resultador procesados...... \n";

if( ap != NULL )
{
  p = listaPaciente.ObtPrimero();

  if( arbolBB.ObtInfo(ap).Clave == listaPaciente.ObtInfo(p).getCedula() )
  {
    cout << "Nro. Historia: " << listaPaciente.ObtInfo(p).getNro_historia() << "\n";
    cout << "Cedula: "        << listaPaciente.ObtInfo(p).getCedula()       << "\t";
    cout << "Nombre: "        << listaPaciente.ObtInfo(p).getNombre()       <<"\t";
    cout << "Apellido: "      << listaPaciente.ObtInfo(p).getApellido()     << "\t";
    cout << "Peso: "          << listaPaciente.ObtInfo(p).getPeso()         << "\t";
    cout << "Estatura: "      << listaPaciente.ObtInfo(p).getEstatura()     << endl;

    cout << "                  Resultados de los Examenes                 " <<endl;
    cout << "Total de Resultados Normales:  " << arbolBB.ObtInfo(ap).Total_resNormales  << endl;
    cout << "Total de Resultados Anormales: " << arbolBB.ObtInfo(ap).Total_resAnormales << endl;
  }
  p = listaPaciente.ObtProx(p);

  ApuntadorBB Izq, Der  // creo 2 apuntadores para los nodos del arbol
  Izq = arbolBB.ObtDer(ap);
  Der = arbolBB.ObtIzq(ap);

  Imprimir_General(arbolBB,Izq,listaPaciente); // recursividad
  Imprimir_General(arbolBB,Der,listaPaciente); // recursividad
}
}


pero resulta ser que no hace nada,,,

me pueden ayudar please!!!!

BlackZeroX

.
Lo unico que se me ocurre es sustituir el metodo:



if( arbolBB.Vacio() )



por un metodo llamado Contar de tal manera hacer un simple for y evitar la recursividad.

por otro lado mas y aun mas importante, No somos adivinos para saber que hace de manera esacta cada miembro de las clases, o como trabajan.

Dulces Lunas!¡.
The Dark Shadow is my passion.