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

Asi lo tengo ahora:


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.     p->siguiente = 0;
  24.    
  25. }
  26.  
  27. Lista :: Lista (int nnodos, TipoBase val){
  28.    
  29.     numnodos=nnodos;   
  30.  
  31.     for (int i=0; i<nnodos; i++){
  32.         l nuevo = new Nodo;
  33.         nuevo->valor = val;
  34.         nuevo->siguiente = p;
  35.         p=nuevo;
  36.     }
  37.     p->siguiente = 0;
  38. }
  39.  
  40. Lista :: ~Lista (void){
  41.  
  42.     delete p;
  43.    
  44.    
  45. }
  46.  
  47. int Lista :: NNodos(void){
  48.  
  49.     return(numnodos);
  50.  
  51. }
  52.  
  53. bool Lista  :: EstaVacia(){
  54.     if (p==0)
  55.         return (true);
  56.  
  57.     else
  58.         return false;
  59. }
  60.  
  61. void Lista :: EscribirLista (void){
  62.  
  63.     l nuevo,ant;
  64.     TipoBase val;
  65.     nuevo = p;
  66.     int n = NNodos();
  67.     for (int i=0; i<n; i++){
  68.     cout << "Introduce un valor: ";
  69.     cin >> val;
  70.     nuevo->valor=val;
  71.     nuevo->siguiente=ant;  
  72.     ant=nuevo;
  73.     }
  74. }
  75.  
  76. void Lista :: Insertar (TipoBase val, int pos){
  77.  
  78.     l nuevo,ant;
  79.     nuevo=p;
  80.     int n = NNodos();
  81.     for (int i=0; i<n; i++){   
  82.         if (n==pos)
  83.             nuevo->valor=val;
  84.         nuevo->siguiente=ant;
  85.         ant=nuevo;     
  86.     }
  87. }
  88.            
  89. TipoBase Lista :: ObtenerValor (int pos){
  90.  
  91.     l nuevo,ant;
  92.     nuevo=p;
  93.     int n = NNodos();
  94.     for (int i=0; i<n; i++){
  95.         if (n==pos)
  96.             return (nuevo->valor);
  97.         nuevo->siguiente=ant;
  98.         ant=nuevo;
  99.     }
  100.    
  101. }