Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pilas, Colas Y Listas: Nombre Matricula Carrera Samuel González Gutiérrez 1905681 ITS
Pilas, Colas Y Listas: Nombre Matricula Carrera Samuel González Gutiérrez 1905681 ITS
PILAS, COLAS
y LISTAS
TABLE OF CONTENTS
Pilas
Definición, Características, Ventajas y
Desventajas
01
Colas
Definición, Características, Ventajas y
Desventajas
02
Listas
Definición, Características, Ventajas y
Desventajas
03
PILAS
Definición
Una pila es una lista ordinal o
estructura de datos en la que el
modo de acceso a sus elementos
es de tipo LIFO que permite
almacenar y recuperar datos.
Características
La característica más importante de la
pila es que el último elemento insertado
en ella es el primero en suprimirse
LIMITADO
La memoria Stack es muy limitada. La
creación de demasiados objetos en la pila
puede aumentar el riesgo de desbordamiento
de la pila. El acceso aleatorio no es posible. El
almacenamiento de variables se sobrescribirá,
lo que a veces conduce a un comportamiento
indefinido de la función o el programa
Operaciones básicas de pilas
Push: Método para insertar un dato en la cima de la pila.
PILAS
10 Mientras haya
números en la pila,
se sacan (por
arriba) y se
escriben
EJEMPLOS DE PILAS
2.- 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
EJEMPLOS DE PILAS
3.- Otra más
Análogo al ejemplo anterior, pero usando dos pilas en vez de una
cola.
1. void invertir(Pila p) LINEAS EJECUCION
2. {
22 - 23 Se vacia la pila p en la pila aux1
3. Pila aux1, aux2;
4. while (!vacia(p))
5. poner(aux1,sacar(p));
6. while (!vacia(aux1))
7. poner(aux2,sacar(aux1)); 24 - 25 Se vacia la pila aux1 en la pila aux
8. while (!vacia(aux2)) 2
9. poner(p,sacar(aux2)); 26 - 27 Se vacia la pila aux2 en la pila p
10.}
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
- 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.
Tipos de colas
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.
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
57 - 61 Si una de las colas esta vacia, se deja entrar a la 1 a gente de la otra cola
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
LENTITUD
- 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.
Tipos de listas
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/