Hola a todos, tengo otra dura, estuve practicando con los nodos y note que después de insertar nodos en una lista no puedo modificarlos/reutilizarlos porque si no me modifica la lista (creo que es porque apunto a esos nodos), alguien sabe como se crea un nodo empezando desde una lista? y como reescribir un nodo? así no tengo que crear un nodo nuevo todas las veces.
Mi código es el siguiente:
Código:
#include <iostream>
using namespace std;
//Estructura nodo...
typedef struct E1 {
int dato;
struct E1 *next;
} ELEMENTO;
typedef ELEMENTO *Lista;
int main(int argc, const char * argv[]) {
/*** INSERTAR UN ELEMENTO EN UNA LISTA VACIA **/
ELEMENTO nodo1 = {10, NULL};
Lista nodo1Ptr = &nodo1;
//Para ver el resultado
//cout << nodo1.dato << " = " << nodo1Ptr->dato << endl;
/*** INSERTAR UN ELEMENTO EN LA PRIMERA POSICION DE UNA LISTA ***/
ELEMENTO nodo2 = {2,nodo1Ptr};
nodo1Ptr = &nodo2;
//Ver elementos de la lista:
//cout << "Lista:\n" << nodo1Ptr->dato<< endl << nodo1Ptr->next->dato << endl;
/*** INSERTAR UN ELEMENTO EN LA ULTIMA POSICION DELLA LISTA ***/
Lista cursor1, temp;
temp = nodo1Ptr;
while (temp) {
cursor1 = temp;
temp = temp->next;
}
//Creamos un elemento para insertar en la lista
ELEMENTO nodo3 = {4,NULL};
cursor1->next = &nodo3;
cout << "Lista:\n" << nodo1Ptr->dato<< endl << nodo1Ptr->next->dato << endl << nodo1Ptr->next->next->dato << endl;
return 0;
}
Estoy siguiendo esta guia: http://www.c.conclase.net/edd/?cap=001b#1_4_3
Nota: El lenguaje de programación que estoy estudiando supuestamente es C++ pero nuestro profesor nos esta enseñando las estructuras que son de C... no le entiendo al final...
Gracias de antemano
Saludos