hola
Escriba el programa completo y use una función para crear una lista enlazada que elimine el nodo que ocupa la posición i de una lista enlazada ordenada.
1.1Descripción: En este problema nos piden crear una función que nos elimine un nodo sin alterar el orden de los nodos de una lista enlazada ordenada.
1.2 Análisis: Para resolver el problema senecesita recorrer la lista contando el número de elementos que van pasando, y termine el recorrido, cuando la lista este vacía, o cuando se haya llegado a la posición que se busca. Una vez terminado elprimer bucle de búsqueda en el caso de que haya que eliminar el elemento, se borra teniendo en cuenta si es o no el primer elemento de acuerdo con lo indicado en la teoría.
1.3 Algoritmo:
1.declaramos las bibliotecas a utilizar
2. declaramos la estructura que nos servirá como nodo por medio de un puntero.
3. Declaramos las funciones que utilizaremos para insertar, borrar, saber si lalista está vacía, mostrar lista.
4. En el main mostraremos el resultado del uso de las funciones antes mencionadas.
5. Insertar elementos en la lista:
-primero se crea un nodo nuevo.
-verificamos sila lista esta vacía
-Si la lista esta vacía: añadimos la lista a continuación del nuevo nodo, así el comienzo de nuestra lista es en nuevo nodo.
-De lo contrario: buscamos el nodo de valor menora i, asi avanzamos hasta el último elemento o hasta que el siguiente sea mayor que i.
-se inserta el nuevo nodo después del nodo anterior.
6. Función borrar:
-primero buscamos su posición, casiparecido a la inserción, solo que en vez de ser el signo “>” ahora es” valor = i;
/* Si la lista está vacía */
if(ListaVacia(*lista) || (*lista)->valor > i) {
/* Añadimos la lista acontinuación del nuevo nodo */
nuevo->siguiente = *lista;
/* Ahora, el comienzo de nuestra lista es en nuevo nodo */
*lista = nuevo;
}
else {
/* Buscar el nodo de...
Regístrate para leer el documento completo.