Universidad Nacional Autónoma de Nicaragua. Departamento de Computación. Laboratorio de Algoritmo y Estructuras de Datos. Ingeniera en Sistemas de Información – Telemática. GUIA DE LABORATORIO # 4 LISTAS SIMPLEMENTE ENLAZADA. OBJETIVOS: • Aplicar los conocimientos adquiridos en los temas anteriores sobre el manejo de las funciones para la asignación dinámica de memoria, la cual permite al usuario crear tipos de datos y estructuras de cualquier tamaño de acuerdo a las necesidades que se tengan en el programa. Esto con el fin de crear una lista lineal dinámica para almacenar la información y poner en práctica todos los conocimientos adquiridos en la teoría. Recuerde: una lista lineal es una lista de elementos u objetos de cualquier tipo, que originalmente puede estar vacía, y que durante la ejecución del programa va creciendo o decreciendo elemento a elemento según las necesidades. TEMPORIZACIÓN: • Inicio de la práctica: Semana del 20 de Septiembre del 2010. • Tiempo de desarrollo de la práctica: 2 sesiones (4 horas). SOFTWARE: • Cualquier compilador de C que cumpla con el estándar ANSI C. Sugerencia: Compilador Microsoft Visual C++, Dev-C++, Pelles C, Geany (Linux). NOTA: Para cada ejercicio haga uso de las definiciones de las siguientes funciones vistas en clases: • NuevoElemento(). • Error(). • Visualizar(). • LiberarMemoria(). Listas simplemente enlazadas en C. 1 Universidad Nacional Autónoma de Nicaragua. Departamento de Computación. Laboratorio de Algoritmo y Estructuras de Datos. Ingeniera en Sistemas de Información – Telemática. Ejercicios. 1. Escribir un programa en C que permita añadir a una lista lineal simplemente enlazada, 10 elementos de tipo float, y luego presente por pantalla un informe con los elementos almacenados en dicha lista. Utilice la siguiente declaración de estructura: struct elemento { float dato; //almacena el dato leido struct elemento *sig; }; 2. Reordenar una lista de cadena de caracteres. Lo que se pretende es introducir una serie de cadenas de caracteres desde el teclado, luego añadirlas a una lista lineal simplemente enlazada de forma que se almacene ordenada alfabéticamente. La estrategia consiste en introducir cada cadena en una línea separada y terminar al escribir la palabra FIN. Al final se deberá mostrar por pantalla un informe con todas las cadenas ya ordenadas. Utilizar la siguiente declaración de estructura: struct cadena { char cad[30]; struct cadena *sig; }; //almacena la cadena leída Nota: para la ordenación de las cadenas no realice ningún tipo de intercambio (algoritmos de ordenación), el mecanismo consiste en saber cuál es la posición adecuada dentro de la lista para realizar la inserción. Listas simplemente enlazadas en C. 2 Universidad Nacional Autónoma de Nicaragua. Departamento de Computación. Laboratorio de Algoritmo y Estructuras de Datos. Ingeniera en Sistemas de Información – Telemática. 3. Considerar la siguiente lista de países y sus capitales: Canadá Perú Ottawa Lima Francia París Alemania Bonn Nicaragua Managua Uruguay Montevideo Israel Jerusalén Italia Roma Paraguay Asunción México Ciudad de México Argentina Buenos Aires Escribir un programa en C que permita almacenar una serie de países y sus capitales en una lista lineal simplemente enlazada. Además, el programa deberá mostrar un informe de los países y sus correspondientes capitales y presentará la posibilidad de buscar un país según su capital y viceversa. Para todas estas operaciones haga uso de un menú donde el usuario pueda elegir la operación a realizar. Utilice la siguiente declaración de estructura: struct paises { char pais[30]; char capital[30]; struct paises *sig; }; Listas simplemente enlazadas en C. //almacena el nombre de un país //nombre de la capital 3