3.2.1 Creacion e inserción.
Inserción de un elemento al comienzo de
la lista
Supongamos una lista lineal referenciada por p. Para
insertar un elemento al principio de la lista, primero se crea el elemento y
después se reasignan las referencias como se indica a continuación:
q=new Nodo;
p q

nulo
q->dato=n; // Asignación de valores
a->siguiente=p;
// reasignación de punteros
p=q;
El orden en el que se realizan estas operaciones es
esencial.
q
p
Esta operación básica nos sugiere como crear una lista. Para ello, y partiendo de una lista vacía, no tenemos mas que repetir la operación de insertar un elemento al comienzo de una lista, tantas veces como elementos deseen que tenga dicha lista.
//
Crear una lista lineal simplemente enlazada
int main ( )
{
Nodo *p=0, *q=0; //punteros
int n=0;
// Crear una lista de enteros
cout<<”Introducir
datos. Finalizar con ctrl.+z. \n”;
cout<<”dato: ”;
while (leerDato(n))
{
q=new
Nodo;
q->datos=n;
q->siguiente=p;
p=q;
cout<<”Dato: “;
}
}
*Inserción de un elemento en general
La inserción de un elemento en la lista, a
continuación de otro elemento cualquiera apuntado por r:
q=new Nodo;
q->dato=x; //valor insertado
q->siguiente=
r->siguiente;
r->siguiente=q;
La inserción de un elemento en la lista entes de otro
elemento apuntado por r, se hace insertando un nuevo elemento detrás del
elemento apuntado por r, intercambiando previamente los valores del nuevo
elemento y del elemento apuntado por r.
q=new Nodo;
*q=*r; // Copiar miembro a
miembro un objeto en otro
r->dato=
x; //valor insertado
r->siguiente=q;