Ensayo ALGOCOMP Pila, Colas

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 9

1

Universidad Autónoma de
Nuevo león

Facultad de ingeniería mecánica y Eléctrica

Algoritmos Computacionales

Ensayo UT 1

NOMBRE MATRICULA CARRERA

Angel Rey Santiago 1897346 ITS


Quiroz Camacho

Guadalupe Alfonso 2082482 IAS


blanco Saucedo

Andrea García Lozano 1979114 IAS

Gilberto Emiliano 1992065 ITS


González Sandoval

Eq: 8

Brigada: __005___

Clase: ___V3___

Maestro: SELENE GUADALUPE PINAL GÓMEZ

Semestre: AGOSTO-DICIEMBRE 2021


2

Algoritmos recursivos
ordenamiento y búsqueda

PILAS
Una pila (stack) es un objeto similar a una pila de
platos, donde se puede agregar y sacar datos
sólo por el extremo superior. En computación
esta estructura es utilizada ampliamente, aunque
muchas veces los usuarios ni siquiera se
percaten. Están tan arraigadas como concepto
en computación, que una de las pocas cosas que
los procesadores (CPU) saben hacer, aparte de
operaciones aritméticas, es usar pilas.

La Pila se utiliza con las siguientes funciones:

● poner(p,x): agrega el elemento x a la pila p. También es conocido como push


● int sacar(p): quita el elemento que está en la cima de la pila p (acá suponemos
una pila de números enteros). Hay gente que se refiere a este método como
pop y pull.
● vacía(p): retorna 1 si la pila p no tiene ningún elemento, 0 sino.

Las pilas son estructuras LIFO (last in, first out), el último que entra es el primero en
salir.

Cuando se dice que la pila está ordenada, lo que quiere decir es que hay un elemento
al que se puede acceder primero (el que está encima de la pila), otro elemento al que
se puede acceder en segundo lugar (justo el elemento que está debajo de la cima),
un tercer elemento, etc.

No se requiere que las entradas se pueden comparar utilizando el operador menor


que (<) y pueden ser de cualquier tipo.
3

Ejemplo:
Un ejemplo típico de pila lo constituye un montón de platos: Cuando se quiere
introducir un nuevo plato, éste se coloca en la posición más accesible, encima del
último plato. Cuando se coge un plato, éste se extrae, igualmente, del punto más
accesible, el último que se ha introducido.

Las operaciones usuales en la pila son Insertar y Quitar. La operación Insertar


(push) añade un elemento en la cima de la pila y la operación Quitar (pop) elimina o
saca un elemento de la pila
Iniciación de la estructura:
● - Crear la pila (CrearPila): La operación de creación de la pila inicia la pila
como vacía. Operaciones para añadir y eliminar información
● - Añadir elementos en la cima (Apilar): pondrá un nuevo elemento en la parte
superior de la pila.
● - Eliminar elementos de la cima (Desapilar): lo que hará será devolver el
elemento superior de la cima y eliminarlo de la pila. Operaciones para
comprobar tanto la información contenida en la pila, como el propio estado de
la cima:
● - Comprobar si la pila está vacía (PilaVacia): Esta operación es necesaria para
poder decidir si es posible eliminar elementos de la pila.
● - Acceder al elemento situado en la cima (CimaPila): Nos indica el valor del
elemento situado en la parte superior de la pila.

COLAS
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 , 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


investigación (entre otros), dónde los objetos, personas o eventos son tomados como
datos que se almacenan y se guardan mediante colas para su posterior
4

procesamiento. Este tipo de estructura de datos abstracta se implementa en


lenguajes orientados a objetos mediante clases, en forma de listas enlazadas.

COLA (ESTRUCTURA DE DATOS)

En esta imagen la estructura de datos se caracteriza 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.

USO CONCRETO DE COLA

La particularidad de una estructura de datos de cola es el hecho de que sólo podemos


acceder al primer y al último elemento de la estructura. Así mismo, los elementos sólo
se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.

Ejemplos de colas en la vida real serían: personas comprando en un supermercado,


esperando para entrar a ver un partido de béisbol, esperando en el cine para ver una
película, una pequeña peluquería, etc. La idea esencial es que son todos líneas de
espera.
5

OPERACIONES BÁSICAS

● Crear: se crea la cola vacía.


● Encolar (añadir, entrar,): se añade un
elemento a la cola y se añade al final
de esta.
● Desencolar (salir,): se elimina el
elemento frontal de la cola, es decir, el
primer elemento que entró.
● Frente (front): se devuelve el
elemento frontal de la cola, es decir, el
primero elemento que entró.

FILAS
Una fila es una estructura de datos lineal donde se inserta en un extremo de la fila
(rear) y se saca del otro extremo de la fila (front). Un conjunto mínimo de operaciones
con una fila son crear, agregar, borrar, obtener el elemento al frente y preguntar si la
fila está vacía. Una especificación como estructura algebraica es:

structureQUEUE(ITEM)
declare
NEW() → queue
ADD(queue, item) → queue
DELETE(queue) → queue
FRONT(queue) → item
IS EMPTY (queue) → boolean
for all q, q1 ∈ QUEUE, i ∈ ITEM let
IS EMPTY (NEW()) ::= true
IS EMPTY (ADD(q, i)) ::= false
FRONT(NEW()) ::= error
FRONT(ADD(q, i)) ::= if IS EMPTY (q) then i else F RONT(q)
DELETE(NEW()) ::= NEW()
6

DELETE(ADD(q, i)) ::= if IS EMPTY (q) then NEW() else ADD(DELET


E(q), i)

Al igual que para pilas, una forma simple de representar filas es con un arreglo que
(1 : n), siendo n el n´umero m´aximo de elementos en la fila y siendo rear y front las
variables que indican el comienzo y fin de la fila, respectivamente. Usando esta
representación, la implementación de las funciones quedan definidas de esta forma:

NEW()::= declare queue(1 : n); front := rear := 0


IS EMPTY(queue)::= if front = rear then true else false
FRONT(queue)::= if IS EMPTY (q) then error else queue(front + 1)

Procedure ADD(item, n, var queue, var rear)


if rear = n do call QUEUE FULL
else [
rear := rear + 1
queue(rear) := item ]
end ADD
Procedure DELETE(rear, queue, var front, var item)
if front = rear do call QUEUE EMPTY
else [
front := front + 1
item := queue(front)]
end DELETE
7

Ejemplo:
8

Conclusion:
Con la información antes dicha en conclusión, la implementación de
pilas, colas y filas posibilita la representación eficiente de los datos
en situaciones donde es necesario indicar el orden de
procesamiento de los mismos y no es posible prever la cantidad de
elementos a procesar por cuanto este tipo de representación
permite crear y destruir variables dinámicamente. a cada uno de
estos nos sirve en algún problema que nos ayude a facilitar con el
resultado obtenido.
9

REFERENCIAS BIBLIOGRÁFICAS

EcuRed. (s. f.). Cola (Estructura de datos) - EcuRed. Algoritmos. Recuperado 12 de


septiembre de 2021, de https://www.ecured.cu/Cola_(Estructura_de_datos)

3.10. ¿Qué es una cola? — Solución de problemas con algoritmos y estructuras de datos.
(s. f.). Algoritmos. Recuperado 13 de septiembre de 2021, de
https://runestone.academy/runestone/static/pythoned/BasicDS/QueEsUnaCola.html

http://www.inf.udec.cl/~jlopez/FUNDPRO/apuntesC/clase12.html
http://aniei.org.mx/paginas/uam/Descargas/Recursos/Tema_Pilas.pdf
http://informatica.uv.es/iiguia/AED/oldwww/2002_03/Teoria/AED.Tema.11.pdf
https://es.slideshare.net/jtiburcio/algoritmos-computacionales-y-programacin-4

También podría gustarte