Nombre Matricula Carrera
Samuel González 1905681 ITS
Gutiérrez
COLAS y
LISTAS
TABLE OF CONTENTS
Colas
01
Definición, Características, Ventajas y
Desventajas
Listas
Definición, Características, Ventajas y
Desventajas
02
COLAS
Definición
Una cola es una estructura de datos que
almacena elementos en una lista y
permite acceder a los datos por uno de
los dos extremos de la lista. Un elemento
se inserta en la cola (parte final) de la
lista y se suprime o elimina por la frente
(parte inicial, cabeza) de la lista.
CARACTERISTICAS
Los elementos se eliminan (se quitan) de
la cola en el mismo orden en que se
almacenan y, por consiguiente, una cola
es una estructura de tipo FIFO (firs-in
first-out , primero en entrar, Primero en
salir o bien primero en llegar/primero en
ser servido).
VENTAJAS
VELOCIDAD LONGITUD
Las colas tienen la ventaja de Las colas pueden tener una
poder manejar múltiples tipos longitud potencialmente
de datos y son flexibles, infinita en comparación con el
flexibles y rápidas. uso de matrices de longitud
fija.
DESVENTAJAS
Para incluir un nuevo elemento en la cola, se
deben eliminar los demás elementos.
Operaciones básicas de las colas
- Insertar
La inserción en las colas se realiza por la cola
de las mismas, es decir, se inserta al final de la estructura.
- Borrar
El borrado es una operación muy simple en las colas.
Esta operación supone extraer la cabeza de la
cola, ya que es el elemento que más tiempo lleva
en la estructura.
EJEMPLOS DE COLAS
Ejemplo 1: un ejemplo “real” En un establo se guarda un rebaño de hipopótamos. Se desea ordenar los hipopótamos según su peso, usando
dos establos adicionales. Los establos son tan angostos que los hipopótamos deben estar formados en fila. Cada establo tiene un abertura
que es la entrada y salida al mismo tiempo.
1.- while (!vacia(establo1)) 16.- poner(establo3,h);
2.- { 17.- poner(establo2,h2);
3.- Hipo h=sacar(establo1); 18.- }
4.- poner(establo2,h); 19.- }
5.- while (!vacia(establo1)) 20.- while (!vacia(establo3))
6.- { 21.- poner(establo1,sacar(establo3));
7.- Hipo h2=sacar(establo1); 22 .-}
8.- h=sacar(establo2);
9.- if (peso(h) < peso(h2))
10.- {
11.- poner(establo2,h);
12.- poner(establo3,h2);
13.- }
14.- else
15.- {
EJEMPLOS DE COLAS
EJEMPLO 1
LINEAS EJECUCION
34 - 35 Se pasa un hipo del establo1 al establo2 (donde estan todos ordenados)
38 - 48 Se saca un hipo del establo 1 y se compara con el hipo mas gordo del establo 2. El mas flaco se deja en el establo
2 y el otro se tira al establo 3
36 Esto se hace mientras haya hipos en el establo 1
51 - 52 Se mueven todos los hipos desdel establo3 hacia el establo1
36 Esto se repite mientras haya hipos en el establo 1
EJEMPLOS DE COLAS
Ejemplo 2: La boletería del cine
Para ir a ver la película "Titanic II, la ira de Rose" hay dos filas de personas. Un acomodador es el encargado de dejar entrar a la gente. Sus
instrucciones son simples: "deja entrar siempre a la persona que es mayor, si tienen la misma edad, a gente de la fila 1 tiene preferencia". El
siguiente código muestra el comportamiento del acomodador. Suponemos que las colas guardan referencias a Personas:
1.- while (!vacia(cola1) || !vacia(cola2))
2.- { 11.- Persona p1=cabeza(c1);
3.- Persona p; 12.- Persona p2=cabeza(c2);
4.- if (vacia(c1)) 13.- if (p1.edad <= p2.edad) p=decolar(c1);
5.- p=decolar(p); 14.- else
6.- else 15.- p=decolar(c2);
7.- if (vacia(c2)) 16.- }
8.- p=decolar(c1); 17.- println ("Se atiende a %s de %d años\n",p.nombre,p.edad);
9.- else 18.- }
10.- {
EJEMPLOS DE COLAS
EJEMPLO 2
LINEAS EJECUCION
54 Mientras una de las dos colas tenga gente…
57 - 61 Si una de las colas esta vacia, se deja entrar a la 1 a gente de la otra cola
64 - 65 Vemos quienes estan parados al inicio de cada cola
66 Si es menor el de la cola 1, pasa el
67 - 68 Si no el otro
EJEMPLOS DE COLAS
Ejemplo 3.- Una triquiñuela
Este método recibe una Pila (suponemos que se guardan enteros
en ella) y la devuelve invertida, usando una cola auxiliar.
1. void invertir(Pila p) LINEAS EJECUCION
2. {
10 La función invertir recibe una Pila p, de
3. Cola c; la clase PilaString. Si bien la referencia
4. while (!vacia(p)) NO puede cambiar, el contenido del
objeto puede ser modificado dentro de
5. { la función y el cambio se verá en todo el
6. int n = sacar(p); programa.
7. encolar(c,n); 13 Se crea una cola auxiliar vacía.
8. }
16 - 17 Se saca el elemento de la pila y se pone en
9. while (!vacia(c)) la cola. Esto mismo se podría haber escrito
10. poner(p,decolar(c)); así: encolar(c,sacar(p));
11. } 19 - 20 Mientras haya elementos en la cola, se
van sacando y colocando en la pila
LISTAS
Definición
Una lista es una estructura de datos
en la cual los elementos
almacenados en la
misma pueden ser agregados,
borrados y accedidos sin
03
restricciones, en cualquier
punto de la estructura.
CARACTERISTICAS
En las listas se pueden ver todos los
elementos de la estructura, permitiendo
realizar recorridos y consultas de los
datos.
El corriente, elemento de
El principio, a partir del referencia en la lista, a partir
cual se inician las del cual se realizan borrados,
búsquedas y recorridos inserciones y modificaciones.
VENTAJAS
FLEXIBILIDAD
Su ventaja fundamental es que
son flexibles a la hora de
reorganizar sus
elementos
DESVENTAJAS
LENTITUD
A diferencia de las colas y pilas
este tiene una mayor lentitud a
la hora de acceder a cualquier
elemento.
Operaciones básicas de las listas
- Insertar
La operación insertar consiste en la introducción de un nuevo elemento en la
lista.
En una lista no ordenada no es necesario mantener ningún
orden, por lo tanto la inserción de
elementos se puede realizar en cualquier lugar de la lista, al
principio, al final, en una posición
aleatoria.
- Borrar
La operación borrar consiste en la eliminación de la lista de un elemento
concreto. El elemento a borrar será escogido por el programador.
EJEMPLOS DE LISTAS
>>> primos = [2, 3, 5, 7, 11] >>> r = range(0, 20, 2)
Para saber si
usar una lista >>> primos >>> r
un elemento x
literal, con los [2, 3, 5, 7, 11] [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
está en la lista
valores entre >>> [] >>> 12 in r
l
corchetes: [] True
>>> [1.0 + 2.0, 3.0 + 4.0 + 5.0] >>> 15 in r
[3.0, 12.0] False
>>> ['hola ' + 'mundo', 24 * 7, True >>> 15 not in r
or False] True
['hola mundo', 168, True]
>> list('hola')
usar la función
>>> primos = [2, 3, 5, 7, 11] list aplicada ['h', 'o', 'l', 'a']
agrega el >>> primos.append(13) sobre un iterable >>> list(range(10))
elemento x al >>> primos.append(17)
final de la lista >>> primos
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 3, 5, 7, 11, 13, 17] >>> list()
[]
BILBLIOGRAFIA
● https://sites.google.com/site/miguelestructura/que-son-las-pilas-en-estructuras-de-datosIcons by
Flaticon
● https://www.uv.mx/personal/ermeneses/files/2021/08/Clase7-Pilas.pdf
● https://www.utm.mx/~rruiz/cursos/ED/material/pila.pdfhttps://ccc.inaoep.mx/ingreso/
programacion/corto2015/Curso-PROPE-PyED-5-Pilas-Colas.pdf
● https://resumenea.com/cuales-son-las-ventajas-y-desventajas-de-la-pila/