Código Estructural:
Código C++:
Ver original
#include "stdafx.h" #include "iostream" #include <conio.h> using namespace System; using namespace std; struct nodo { int datos; nodo *sig; }; nodo *inicial=NULL; void leer_nodo(nodo *nuevo) // Método - Leer nodo { cout<<"Entre valor del nodo"<<endl; // Permite ingresar la cantidad de Nodos cin>>nuevo->datos; } void crear_lista(nodo *anterior, nodo *nuevo) { if(anterior == NULL) { nuevo->sig = inicial; leer_nodo(nuevo); // Lee 1ra vez inicial = nuevo; } else { nuevo->sig = anterior->sig; anterior->sig = nuevo; leer_nodo(nuevo); // Lee N vez } } void imprime_nodo(nodo *apun) // Cambio { cout<<"El valor es : "<<apun->datos<<endl; } void reco_iter(nodo *apun) // Cambio { while(apun != NULL) { imprime_nodo(apun); // Imprime valor nodo apun = apun->sig; } } void borrar_lista(nodo *apun) { nodo *inicial; while(apun != NULL) { inicial=apun->sig; delete apun; apun=inicial; } } void main() { nodo *anterior, *nuevo, *apun; // Cambio -> apun char resp; anterior=NULL; do { nuevo = new nodo; crear_lista(anterior, nuevo); anterior = nuevo; cout<<"Desea crear otro nodo? (s/n) "<<endl; cin>>resp; }while(resp != 'n'); //inicio del recorrido de la lista apun = inicial; reco_iter(apun); borrar_lista(inicial) ; }
Código en Objetos con ERROR
Código C++:
Ver original
#include "stdafx.h" #include "iostream" #include <conio.h> using namespace System; using namespace std; struct nodo { int datos; nodo *sig; }; class lista // Nueva clase - Lista { private: nodo *inicial; public: lista(); // La lista - Publico ~lista(); // ~La lista - Publico void crear_lista(nodo *anterior, nodo *nuevo); // Metodo "crear_lista" - Publico void leer_nodo(nodo *nuevo); // Método - Leer nodo void imprime_nodo(nodo *apun); // Cambio void reco_iter(nodo *apun); // Cambio void borrar_lista(nodo *inicial) ; }; lista::lista() { inicial=NULL; // Inicializa NULL } void lista::leer_nodo(nodo *nuevo) // Método - Leer nodo { cout<<"Entre valor del nodo"<<endl; // Permite ingresar la cantidad de Nodos cin>>nuevo->datos; } void lista::crear_lista(nodo *anterior, nodo *nuevo) { if(anterior == NULL) { nuevo->sig = inicial; leer_nodo(nuevo); // Lee 1ra vez inicial = nuevo; } else { nuevo->sig = anterior->sig; anterior->sig = nuevo; leer_nodo(nuevo); // Lee N vez } } void lista::imprime_nodo(nodo *apun) // Cambio { cout<<"El valor es : "<<apun->datos<<endl; } void lista::reco_iter(nodo *apun) // Cambio { while(apun != NULL) { imprime_nodo(apun); // Imprime valor nodo apun = apun->sig; } } lista::~lista() // Metodo "borrar_lista" - Publico { nodo *apun; // " * " es para crear nodo apun=inicial; while(apun != NULL) { cout<<"borro"<<endl; inicial=apun->sig; delete apun; apun=inicial; } } void main() { nodo *anterior, *nuevo, *apun; lista objlista; // Dar memoria a la lista char resp; anterior=NULL; do { nuevo = new nodo; objlista.crear_lista(anterior, nuevo); // Nuevo metodo anterior = nuevo; cout<<"Desea crear otro nodo? (s/n) "<<endl; }while (resp != 'n'); //inicio del recorrido de la lista apun = inicial; objlista.reco_iter(apun); objlista.borrar_lista(inicial) ; }
¿Cuál es el error en esta compilación?