Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/04/2013, 07:59
Lotux5
 
Fecha de Ingreso: enero-2013
Mensajes: 25
Antigüedad: 11 años, 4 meses
Puntos: 0
Respuesta: Error con clase de listas enlazadas.

Le problema que tenía antes (el programa no se compilaba) ya lo arregle pero ahora tengo el problema que los metodos no guardan los valores que se le introducen.



Código C++:
Ver original
  1. #include <iostream>
  2. #include "Lista.h"
  3.  
  4. using namespace std;
  5.  
  6. Lista :: Lista (void){
  7.  
  8.     p=0;
  9.     numnodos=0;
  10.    
  11. }
  12.  
  13. Lista :: Lista (int nnodos){
  14.  
  15.     numnodos=nnodos;    
  16.  
  17.     for (int i=0; i<nnodos; i++){
  18.         l nuevo = new Nodo;
  19.         nuevo->valor = 0;
  20.         nuevo->siguiente = p;
  21.         p=nuevo;
  22.     }
  23.    
  24. }
  25.  
  26. Lista :: Lista (int nnodos, TipoBase val){
  27.    
  28.     numnodos=nnodos;    
  29.  
  30.     for (int i=0; i<nnodos; i++){
  31.         l nuevo = new Nodo;
  32.         nuevo->valor = val;
  33.         nuevo->siguiente = p;
  34.         p=nuevo;
  35.     }
  36. }
  37.  
  38. Lista :: ~Lista (void){
  39.  
  40.     delete p;
  41.    
  42. }
  43.  
  44. int Lista :: NNodos(void){
  45.  
  46.     return(numnodos);
  47.  
  48. }
  49.  
  50. bool Lista  :: EstaVacia(){
  51.     if (p==0)
  52.         return (true);
  53.  
  54.     else
  55.         return false;
  56. }
  57.  
  58. Lista Lista :: EscribirLista (void){
  59.  
  60.     l nuevo;
  61.     TipoBase val;
  62.     int n = NNodos();
  63.  
  64.     for (int i=0; i<n; i++){
  65.     cout << "Introduce un valor: ";
  66.     cin >> val;
  67.     nuevo->valor=val;
  68.     nuevo->siguiente=p;
  69.     p=nuevo;
  70.     }
  71. }
  72.  
  73. void Lista :: Insertar (TipoBase val, int pos){
  74.  
  75.     l nuevo;
  76.     int n = NNodos();
  77.    
  78.     for (int i=0; i<n; i++){    
  79.         if (n==pos)
  80.             nuevo->valor=val;
  81.         nuevo->siguiente=p;
  82.         p=nuevo;        
  83.     }
  84. }
  85.            
  86. TipoBase Lista :: ObtenerValor (int pos){
  87.  
  88.     l nuevo;
  89.     int n = NNodos();
  90.  
  91.     for (int i=0; i<n; i++){
  92.         if (n==pos)
  93.             cout << nuevo->valor << endl;
  94.         nuevo->siguiente=p;
  95.         p=nuevo;
  96.     }