Desarrolle un subprograma (procedimiento o función) iterativo llamado "insertaFinal" que inserte por al final de la lista un entero. Para crear un nodo en memoria dinámica emplee la función malloc. Si se implementa como procedimiento se debe pasar la dirección de un puntero al inicio de una lista enlazada y un entero (la lista puede estar vacía). Si se implementa como función se debe pasar un puntero al inicio de una lista enlazada y un entero (la lista puede estar vacía) y debe devolver un puntero al inicio de la lista modificada.
La estructura es:
struct NodoLista {
int dato;
struct NodoLista* sig;
};
typedef struct NodoLista TNodoLista, *PNodoLista;
void insertaFinal(PNodoLista *p, int v)
{
PNodoLista nuevo, ant;
//Crear un nodo nuevo
nuevo = (TNodoLista *)malloc(sizeof(TNodoLista));
//insertamos el valor al nuevo nodo
nuevo->dato = v;
//si es el primer nodo lo insertamos
if(*p == NULL) {
nuevo->sig = *p;
*p = nuevo;
}
else {
ant = *p;
//mientras haya lista, llegamos al final para insertar
while(ant->sig)
ant = ant->sig;
nuevo->sig = ant->sig;
ant->sig = nuevo;
}
}
Suscribirse a:
Enviar comentarios (Atom)
3 comentarios:
esta muy bien pero me mandaron hacer un programa de lista donde debo incertar un valor al principio y otro al final de la lista
muy bueno tu aporte yo andaba buscando algo para comenzar con las listas y este ejemplo me esta ayudando muchas gracias
De nuevo gracias \o/ !!
Publicar un comentario