Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2021/2022
Ejercicios de repaso
Ficha 4
Ejercicio 1
Las listas enlazadas son una de las estructuras de datos fundamentales. Consiste en una
secuencia de nodos, en los que se guardan campos de datos arbitrarios y una (simples) o dos
(dobles) referencias, enlaces o punteros al nodo anterior o posterior. El principal beneficio de
las listas enlazadas respecto a los vectores (list) convencionales es que el orden de los
elementos enlazados puede ser diferente al orden de almacenamiento en la memoria o el
disco.
Desarrollar un programa que permita identificar si en una lista enlazada existe un ciclo que
impide que la lista finalice como se puede observar en la siguiente imagen.
Ayuda:
Para el desarrollo de este programa que ofrece una librería en Python denominada
nodo_lista.py que ofrece un sistema de generación de listas circulares. Además, se ofrecen
tres ejemplos denominados:
• Lista_con_ciclos_1
• Lista_con_ciclos_2
• Lista_sin_ciclos
Las listas permiten navegar y acceder a la información mediante las siguientes funciones: (1)
siguiente que permite obtener el siguiente nodo de la lista; y (2) valor que permite acceder al
valor almacenado en el nodo.
Restricciones:
Ejercicio 2
Los árboles binarios (ejemplo mostrado en la siguiente imagen) son estructuras de datos que
permiten almacenar información mediante nodos, donde cada nodo puede tener únicamente
un hijo izquierdo y un hijo derecho como máximo.
Dependiente de su posición en el árbol pueden ser de tres tipos:
• Nodo raíz: Es un nodo único que representa el nodo inicial del árbol.
• Nodos intermedios: Son nodos intermedios que pueden tener uno o dos nodos hijos.
• Nodos hojas (terminales): Son nodos que no tienen nodos hijos.
Ayuda:
Ejercicio 3
Los palíndromos son palabras o frases que se lee igual en un sentido que en otro, como, por
ejemplo: Ana, Anna, Otto. Desarrollar un programa que dado un fichero con diferentes
palabras o frases (una en cada línea del fichero) identifique cuales son o no palíndromos. Los
ejemplos podrán contener caracteres acentuados, espacios y signos de puntuación.
Ayuda:
Restricciones: