listas lineales enlazadas
La creación de una lista ordenada es: struct lista *L = NULL;Inserción en una lista Ordenada:
Para insertar un nuevo elemento en la lista ordenada hay que hacerlo en el lugar que le corresponda, y esto depende del orden y de la clave escogida. Este proceso serealiza en tres pasos:
1. Localizar el lugar correspondiente al elemento a insertar.
2. Reservar memoria para el nuevo nodo.
3. Enlazarlo.
Eliminación en una lista Ordenada:
1. Verificarla posición del elemento en la lista.
2. Enlazar el elemento previo con el siguiente en la lista
3. Liberar la memoria del nodo.
/*OperaListaOrdenada.cpp el programa opera una lista ordenadade enteros, pero contiene errores*/
/*en la eliminación de nodos. Se le pide hacer un seguimiento, detectar los errorres y corregirlos*/
#include
#include
#include
struct nodo{
intdato;
struct nodo *siguiente;
};
typedef struct nodo NODO;
main()
{int i, suma=0;
NODO *p,*q,*L,*r;
L = NULL; /* Crea una lista vacia */
for (i = 4; i >= 1; i--)
{/* Reserva memoria para un nodo en cada iteración*/
p = (NODO *) malloc(sizeof( NODO));
p->dato = i; /* Introduce la informacion */
p->siguiente = L; /* reorganiza */
L = p;/* los enlaces */
}
/* recorre y suma la lista */
q = L;
printf("\n\nLa lista creada es:\t");
while (q != NULL) {
printf("%d\t ", q->dato);
suma = suma + q->dato;q = q->siguiente;
}
printf ("\n\nLa suma de los elementos de la lista es: %d\n\n",suma);
/* la nueva lista ordenada será....*/
printf("\n\nLa lista modificada es:\t");...
Regístrate para leer el documento completo.