3. Qué es una estructura lista?
Una lista es una de las estructura de los datos fundamentales, y puede ser
usada para implementar otras estructuras de datos. Consiste en una secuencia
de nodos, en los que se guardan campos de datos arbitrarios y una o dos
referencias (punteros) al nodo anterior o posterior.
Una lista puede estar compuesta por Enteros, Reales, String, etc.
Podríamos definir una lista que posee orden, cantidad de elementos,
naturaleza igual o mismo tipo de datos.
Una estructura de lista es aquella que posee operaciones tales como;
Concatenar
Pertenencia
Ordenar
Encriptar
4. Estructura de listas
Objetos reales que se puedan modelar con dicha estructura.
1. Lista de estudiantes
2. Lista compra de navidad
3. Lista de alimentos para hacer una receta
4. Lista para una fiesta
6. Estructura de lista
Relacionar el concepto de VENTANA con el de Lista.
La lista nos permite definir el conjunto de atributos y operaciones que
tendra la venta que diseñaremos.
Describir las implementaciones de Listas:
e1.- Vectores
Es una forma eficaz de representar una plia, si se conoce con
anterioridad el número máximo de elementos que va a contener.
e2.- Listas doblemente enlazadas:
Las listas doblemente enlazadas requieren más espacio por nodo y
sus operaciones básicas resultan más costosas pero ofrecen una
mayor facilidad para manipular ya que permiten el acceso secuencial a
lista en ambas direcciones. En particular, uno puede insertar o borrar
un nodo en un número fijo de operaciones dando únicamente la
dirección de dicho nodo.
7. Estructura de listas
Mecanismos mediante los cuales los lenguajes de programación
permiten implementar las listas.
Se pueden implementar las listas doblemente encadenadas, vectores,
listas encadenadas con centinela y listas encadenadas con
encabezado.
¿cómo los lenguajes que no manejan apuntadores simulan las listas
doblemente enlazadas?
Se puede insertar o borrar un nodo en un número fijo de operaciones
dando únicamente la dirección de dicho nodo.
8. Estructura de pila
Una estrucuta de pila podría definirse como una secuencia de cero o
más elementos de un mismo tipo, que solamente puede crecer y
decrecer por uno de sus extremos. Se puede ver como un caso
particular de una lista, en el cual la ventana se mantiene estática en la
primera posición y las operaciones posibles se restringen, permitiendo
el acceso a la estructura únicamente por ese punto.
Otra forma de definir las pilas es como estructuras LIFO (Last-In-First-
Out), porque su característica principal es que el último elemento en
llegar es el primero en salir. Son muy utilizadas en programación, para
evaluar expresiones, reconocer lenguajes, recorrer árboles y simular
procesos recursivos.
11. Estructura de pilas
Mecanismos mediante los cuales los lenguajes de programación
permiten implementar las pilas a través de listas y vectores.
Un requisito típico de almacenamiento de una pila de n elementos
es O(n). El requisito típico de tiempo de O(1) las operaciones
también son fáciles de satisfacer con un array o con listas
enlazadas simples.
La biblioteca de plantillas de C++ estándar proporciona una "pila"
clase templated que se limita a sólo apilar/desapilar operaciones.
Java contiene una biblioteca de la clase Pila que es una
especialización de Vector. Esto podría ser considerado como un
defecto, porque el diseño heredado get () de Vector método LIFO
ignora la limitación de la Pila.
Estos son ejemplos sencillos de una pila con las operaciones
descritas anteriormente (pero no hay comprobación de errores).
12. Estructura COLA
Una cola es una estructura de datos, caracterizada por ser una
secuencia de elementos en la que la operación de inserción
push se realiza por un extremo y la operación de extracción pop
por el otro. También se le llama estructura FIFO (del inglés First
In First Out), debido a que el primer elemento en entrar será
también el primero en salir.
Las colas se utilizan en sistemas informáticos, transportes y
operaciones de investigacion (entre otros), dónde los objetos,
personas o eventos son tomados como datos que se
almacenan y se guardan mediante colas para su posterior
procesamiento. Este tipo de estructura de datos abstracta se
implementa en lenguajes orientados a objetos mediante clases,
en forma de listas enlazadas.
13. Estructura de cola
Objetos reales que se puedan modelar con dicha estructura.
La cola en un banco,
La cola para pagar en un super mercado,
La cola en una audicion,
La cola de impresion,
La cola en una cafeteria.
15. Particularidades de un TAD COLA con prioridades
Cuando un conjunto de procesos dentro de un computador hacen
cola para utilizar algún recurso, no todos tienen la misma prioridad.
Existen algunos más importantes que otros, que requieren ser
atendidos con mayor prontitud. En ese caso, al entrar un nuevo
elemento a la cola, debe saltarse todos aquellos cuya prioridad sea
menor y se encuentren en la fila. Para sacar un elemento, lo mismo
que para consultarlo, se toma el primero de la secuencia (el más
antiguo de mayor prioridad). En el resto de operaciones, una cola de
prioridades se comporta como una cola corriente.
En este tipo de estructuras, cada componente incluye un valor que
representa su prioridad. Por esto, se extiende de la siguiente
manera el formalismo propuesto en la sección anterior:
[ x1«p1] [ x2«p2] .... [ xn«pn]
16. Implementaciones de COLAS con vectores circulares.
Un TAD circular es un objeto abstracto que se puede
representar mediante el siguiente formalismo.
En ella, los elementos se encuentran organizados de manera
circular y uno de ellos, denominado punto de entrada, es un
elemento especial sobre el cual se aplican las operaciones. Una
ronda vacía se representa con el símbolo , y su punto de
entrada es indefinido ( ).
Para agregar un elemento a una ronda, existe la operación
adicRonda cuyo efecto es el siguiente: