Código C:
Ver original
#include <stdio.h> #include <stdlib.h> struct nodo{ char letra; struct nodo *siguiente; }; typedef struct nodo nuevoNodo; typedef nuevoNodo *ptrnuevoNodo; void menu (); void imprimir_lista (ptrnuevoNodo lista); int esta_vacia (ptrnuevoNodo lista); void insertar_letra (ptrnuevoNodo * lista, char valor); int eliminar_letra (ptrnuevoNodo * lista, char valor); int main (){ int opt = 1; char valor; ptrnuevoNodo lista = NULL; menu (); while ( opt != 4 ){ switch ( opt ){ case 1: imprimir_lista (lista); break; case 2: insertar_letra (&lista, valor); imprimir_lista (lista); break; case 3: eliminar_letra (&lista, valor); imprimir_lista (lista); break; case 4: break; default: menu (); } } } void imprimir_lista (ptrnuevoNodo lista){ if ( esta_vacia (lista) ){ } else{ while ( lista != NULL ){ lista = lista->siguiente; } } } int esta_vacia (ptrnuevoNodo lista){ return lista == NULL; } void insertar_letra (ptrnuevoNodo * lista, char valor){ ptrnuevoNodo ptrNuevo = NULL; if ( ptrNuevo == NULL ){ } else { ptrNuevo->letra = valor; ptrNuevo->siguiente = NULL; ptrnuevoNodo ptrAnterior = NULL; ptrnuevoNodo ptrActual; ptrActual = *lista; while ( ptrActual->letra < valor && ptrActual != NULL ){ ptrAnterior = ptrActual; ptrActual = ptrActual -> siguiente; } if ( ptrAnterior == NULL ){ ptrNuevo->siguiente = ptrActual; *lista = ptrNuevo; } else{ ptrAnterior->siguiente = ptrNuevo; ptrNuevo->siguiente = ptrActual; } } } int eliminar_letra (ptrnuevoNodo * lista, char valor){ ptrnuevoNodo ptrActual = *lista; ptrnuevoNodo temp = NULL; if ( ptrActual->letra == valor ){ temp = *lista; *lista = (*lista) -> siguiente; return 1; } else{ ptrnuevoNodo ptrAnterior = ptrActual; ptrActual = (*lista)->siguiente; while ( ptrActual->letra < valor && ptrActual != NULL ){ ptrAnterior = ptrActual; ptrActual = ptrActual -> siguiente; } ptrAnterior = ptrActual; ptrActual = ptrActual->siguiente; ptrActual = ptrActual->siguiente; ptrAnterior->siguiente= ptrActual; } } void menu (){ "Introduce 2 para añadir un elmento \n", "Introduce 3 para eliminar un elemento \n", "Introduce 4 para salir del programa \n"); }
Un saludo y muchas gracias de antemano.