

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
En este documento se presenta la práctica 7 del curso de análisis de algoritmos y estructuras de datos, donde se requiere la implementación de la estructura de datos lista (tad lista) utilizando representaciones estática y dinámica. Se incluyen pasos a seguir y ejercicios para su desarrollo. El documento también aborda temas relacionados como listas circulares, listas ordenadas, eliminación de elementos en listas, conjuntos representados mediante listas enlazadas y el tad número binario.
Tipo: Ejercicios
1 / 3
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!


1. Implemente el TAD Lista Circular partiendo de la siguiente especificación.
Definición: Una lista circular es una secuencia de elementos de un mismo tipo en la que todos tienen un predecesor y un sucesor, es decir, es una secuencia sin extremos. Su longitud coincide con el número de elementos que la forman; si es 0, entonces la lista está vacía. Una lista circular de longitud n se puede representar de la forma
L = ( a 1 , a 2 ,... , an, a 1 )
donde repetimos a 1 después de an para indicar que el elemento que sigue a an es a 1 y el anterior a éste es an. Definimos una posición como el lugar que ocupa un elemento en la lista. La constante POS_NULA denota una posición inexistente.
Operaciones:
ListaCir() Postcondiciones: Crea y devuelve una lista circular vacía.
void insertar(const T& x, posicion p) Precondiciones: L = () y p es irrelevante o bien, L = ( a 1 , a 2 ,... , an, a 1 ) y 1 ≤ p ≤ n Postcondiciones: Si L = (), entonces L = ( x, x ) (lista circular con un único elemento); en caso contrario, L = ( a 1 ,... , ap − 1 , x, ap,... , an, a 1 )
void eliminar(posicion p) Precondiciones: L = ( a 1 , a 2 ,... , an, a 1 ) 1 ≤ p ≤ n Postcondiciones: L = ( a 1 ,... , ap − 1 , ap +1 ,... , an, a 1 )
T elemento(posicion p) const T& elemento(posicion p) Precondiciones: L = ( a 1 , a 2 ,... , an, a 1 ) 1 ≤ p ≤ n Postcondiciones: Devuelve ap , el elemento que ocupa la posición p.
posicion buscar(const T& x) const Postcondiciones: Devuelve la posición de una ocurrencia de x en la lista. Si x no pertenece a la lista, devuelve POS_NULA.
posicion inipos() const Postcondiciones: Devuelve una posición indeterminada de la lista. Si la lista está va- cía, devuelve POS_NULA. Esta operación se utilizará para inicializar una variable de tipo posicion.
posicion siguiente(posicion p) const Precondiciones: L = ( a 1 , a 2 ,... , an, a 1 ) 1 ≤ p ≤ n Postcondiciones: Devuelve la posición siguiente a p.
posicion anterior(posicion p) const Precondiciones: L = ( a 1 , a 2 ,... , an, a 1 ) 1 ≤ p ≤ n Postcondiciones: Devuelve la posición anterior a p.
2. Una lista ordenada es una lista en la cual los elementos están ordenados de forma ascen- dente según la relación de orden definida entre ellos. Especifique e implemente el TAD Lista ordenada. 3. Implemente una función que tenga como entrada una lista de enteros y un entero x , de forma que devuelva la lista modificada mediante la eliminación de todas las ocurrencias de x en la lista.