Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/07/2013, 19:39
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Programación Orientada en Objetos de C++

damn! no se como te compila esa cosa si mezclas librerías propietarias de microsoft y borland.

De cualquier manera veo que muchos te problemas son porque no sabes que esta pasando exactamente.

Código C++:
Ver original
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. struct nodo
  6. {
  7.     int datos;
  8.     nodo *sig;
  9.  
  10. };
  11.  
  12. class lista // Nueva clase - Lista
  13. {
  14.     private:
  15.         nodo *inicial;
  16.     public:
  17.         lista();   // La lista  - Publico
  18.         ~lista();  // ~La lista - Publico
  19.  
  20.         void crear_lista(nodo *anterior, nodo *nuevo); // Metodo "crear_lista" - Publico
  21.         void leer_nodo(nodo *nuevo); // Método - Leer nodo
  22.         void imprime_nodo(nodo *apun); // Cambio
  23.         void reco_iter(); // Cambio
  24. };
  25.  
  26. lista::lista()
  27. {
  28.     inicial=NULL; // Inicializa NULL
  29. }
  30.  
  31. void lista::leer_nodo(nodo *nuevo) // Método - Leer nodo
  32. {
  33.     cout<<"Entre valor del nodo"<<endl; // Permite ingresar la cantidad de Nodos
  34.     cin>>nuevo->datos;
  35. }
  36.  
  37. void lista::crear_lista(nodo *anterior, nodo *nuevo)
  38. {
  39.     if(anterior == NULL)
  40.     {
  41.         nuevo->sig = inicial;
  42.         leer_nodo(nuevo); // Lee 1ra vez
  43.         inicial = nuevo;
  44.     }
  45.     else
  46.     {
  47.         nuevo->sig = anterior->sig;
  48.         anterior->sig = nuevo;
  49.         leer_nodo(nuevo); // Lee N vez
  50.     }
  51. }
  52.  
  53. void lista::imprime_nodo(nodo *apun) // Cambio
  54. {
  55.     cout<<"El valor es :    "<<apun->datos<<endl;
  56. }
  57.  
  58. void lista::reco_iter() // Cambio
  59. {
  60.     nodo *apun = inicial;
  61.     while(apun != NULL)
  62.     {
  63.         imprime_nodo(apun); // Imprime valor nodo
  64.         apun = apun->sig;
  65.     }
  66. }
  67.  
  68. lista::~lista() // Metodo "borrar_lista" - Publico
  69. {
  70.     nodo *apun = inicial; // " * " es para crear nodo
  71.     while(apun != NULL)
  72.     {
  73.         cout << "borro" << endl;
  74.         inicial = apun->sig;
  75.         delete apun;
  76.         apun = inicial;
  77.     }
  78. }
  79.  
  80. int main()
  81. {
  82.     nodo *anterior, *nuevo, *apun;
  83.     lista objlista; // Dar memoria a la lista
  84.     char resp;
  85.     anterior = NULL;
  86.     do
  87.     {
  88.         nuevo = new nodo;
  89.         objlista.crear_lista(anterior, nuevo); // Nuevo metodo
  90.         anterior = nuevo;
  91.         cout<<"Desea crear otro nodo? (s/n) "<<endl;
  92.         cin>>resp ; resp=tolower(resp);
  93.     }while (resp != 'n');
  94.  
  95.     //inicio del recorrido de la lista
  96.     objlista.reco_iter();
  97.     objlista.~lista();
  98.     return 0;
  99. }