Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Análisis de Algoritmos y Estructuras de Datos: Práctica 7 - Uso del TAD Lista - Prof. Grac, Ejercicios de Ingeniería Infórmatica

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

2013/2014

Subido el 01/09/2014

pegaitopsepse
pegaitopsepse 🇪🇸

4.8

(5)

6 documentos

1 / 3

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Análisis de Algoritmos y Estructuras de Datos
Práctica 7: Uso del TAD Lista
Versión 2.0
Pasos a seguir
1. Implemente el TAD Lista utilizando las representaciones pseudoestática y dinámica.
2. Escriba módulos que contengan las implementaciones de los subprogramas demandados
en cada problema.
3. Para cada uno de los problemas, escriba un programa de prueba donde se realicen las
llamadas a los subprogramas, comprobando el resultado de salida.
Ejercicios
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 nse puede representar de la forma
L= (a1, a2, . . . , an, a1)
donde repetimos a1después de anpara indicar que el elemento que sigue a anes a1y 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.
1
pf3

Vista previa parcial del texto

¡Descarga Análisis de Algoritmos y Estructuras de Datos: Práctica 7 - Uso del TAD Lista - Prof. Grac y más Ejercicios en PDF de Ingeniería Infórmatica solo en Docsity!

Análisis de Algoritmos y Estructuras de Datos

Práctica 7: Uso del TAD Lista

Versión 2.

Pasos a seguir

  1. Implemente el TAD Lista utilizando las representaciones pseudoestática y dinámica.
  2. Escriba módulos que contengan las implementaciones de los subprogramas demandados en cada problema.
  3. Para cada uno de los problemas, escriba un programa de prueba donde se realicen las llamadas a los subprogramas, comprobando el resultado de salida.

Ejercicios

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 ≤ pn 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 ≤ pn 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 ≤ pn 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 ≤ pn Postcondiciones: Devuelve la posición siguiente a p.

posicion anterior(posicion p) const Precondiciones: L = ( a 1 , a 2 ,... , an, a 1 ) 1 ≤ pn 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.