Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/01/2015, 12:07
Rufux
 
Fecha de Ingreso: enero-2015
Mensajes: 14
Antigüedad: 9 años, 3 meses
Puntos: 0
Pregunta Duda nodos C/C++

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

Última edición por Rufux; 14/01/2015 a las 13:34