Está en la página 1de 15

Práctica 4 Aplicación de

colas circulares y listas

Análisis de Algoritmos
Mtra. Beatriz Dolores
Guardián Soto

5cm13

Equipo 10

B e nite z G alicia Jair A lan


H e rnánd ez Ve la Su áre z H u go
Ru iz G o nzale z Ke vin I d e kel
T ave ra B azán A lan Yae l
Definición y análisis del problema:
¿Qué vamos a hacer?

Elaborar un algoritmo y un código donde se apliquen las colas circulares y las


listas.

¿Cómo lo vamos a resolver?

Se crearán dos programas, uno de pila y otro de colas circulares. En ellos el usuario
podrá escoger como llenar su arreglo por medio de un menú, después se mostrará
el llenado del mismo y por medio de funciones se podrá manipular dicho arreglo de
lista y/o cola.
Marco teórico

* Se adjuntó la imagen de
CmapTools ampliada en la
carpeta de archivos
Análisis de Algoritmo - Colas
circulares
Inicio
Declaración de variables

Delimitar el tamaño del arreglo

Menú
Opción 1 -> Introducir un valor
Opción 2 -> Eliminar un valor
Opción 3 -> Se muestra el llenado del arreglo

Opción 4-> Finalizar programa

(Al ser una cola cumple con las mismas operaciones disponibles que la cola simple pero con optimizaciones y
ventajas al manejarlas en muchos medios)
Al ser las operaciones importantes de las colas dobles se desarrollaran estas)
Opción 1 -> Introducir un valor(encolar)
Entradas
x: Valor {* elemento que se desea insertar *}
col: Cola de Valor O(1)
Salidas col
Inicio {* comprobar si en la cola se pueden insertar más elementos *} {* esto es necesario por el tipo de
representación de la estructura popularmente representada con un circulo*}
Si ( Siguiente ( col.fin ) = col.ini ) entonces O(1)
“Error ‘cola llena’” O(1)
Sino col.info [col.fin] ← x
col.fin ← Siguiente (col.fin) O(1)
Fin_sino
Fin =O(1)+O(1)+O(1)+O(1)= Omax(1,1,1,1)= O(1)
(al ser las operaciones importantes de las colas dobles se desarrollaran estas)

Opción 2 -> Eliminar un valor(desencolar)

Entradas

col: Cola de Valor

Salidas O(1)

col

Inicio {* comprobar si se pueden eliminar elementos de la cola *} {* esta operación no depende de la representación, siempre es necesaria *}

Si ( Cola_Vacia (col) ) entonces O(1)

“Error ‘cola vacia’“ O(1)

sino

{* Esta operación no sería realmente necesaria *}

col.Ini ← Siguiente (col.Ini) O(1)

Fin_si

Fin =O(1)+O(1)+O(1)+O(1)= Omax(1,1,1,1)= O(1)


Análisis de Algoritmo – Listas
circulares
Inicio
Declaración de variables

Delimitar el tamaño del arreglo

Menú
Opción 1 -> Introducir un valor
Opción 2 -> Eliminar un valor
Opción 3 -> Se muestra el llenado del arreglo

Opción 4-> Finalizar programa

(Al ser una lista circular tiene las mismas operaciones básicas que las listas y con mas funcionalidades que las
listas simples )
(Opción 1 -> Introducir un valor
Entradas
x: Valor {* elemento que se desea insertar *}
lis: Valor de lista O(1)
Salidas lis
Inicio {* comprobar si en la lista se pueden insertar más elementos *}
Si (lista_vacia ) entonces O(1)
Lista->nodo O(1)
Lista->sig O(1)
Sino nodo->siguiente apunte a lista->siguiente O(1)
Lista->siguiente->nodo O(1)
Fin_sino
Fin =O(1)+O(1)+O(1)+O(1)+O(1)+O(1)= Omax(1,1,1,1,1,1)= O(1)
Opción 2 -> Eliminar un valor

Entradas

lis: Valor de lista

Salidas O(1)

col

Inicio {* comprobar si se pueden eliminar elementos de la lista *}

Si ( lista(1) ) entonces O(1)

Borrar nodo apuntado por la lista O(1)

Lista=null O(1)

sino

Lis->siguiente lista->siguiente distinto de nodo O(1)

Lista->siguiente -> nodo->siguiente O(1)

Eliminar nodo O(1)

Fin_si

Fin =O(1)+O(1)+O(1)+O(1)+O(1)+O(1)+O(1)= Omax(1,1,1,1,1,1,1)= O(1)


Pseudocódigo (para enlistarlos precios
de productos de un supermercado)
• Ini cio

• Introducir opción en el menú

• Si opción es 1 ha z

• Introduce el precio de un producto a l a lista

• Si opción es 2 ha z

• El i mina el precio de un producto de la lista

• Si opción es 3 ha z

• Impri me la lista de compras

• Si opción es 4 ha z

• Termi na el programa

• fi n
Pseudocódigo de colas circulares
• Inicio • Elimina el valor al inicio de la lista

• Introducir opción en el menú • Si opción es 4 haz

• Si opción es 0 haz • Elimina el valor al final de la lista

• Imprimir la lista de nodos • Si opción es 5 haz

• Si opción es 1 haz • Elimina uno de los nodos de la lista

• Introduce el valor al inicio de la lista • Si opción es 6 haz

• Si opción es 2 haz • Se selecciona un nodo “x” y se coloca el


valor ingresado antes
• Introduce el valor al final de la lista
• fin
• Si opción es 3 haz
Código del programa
El archivo del código es extenso, por lo
tanto se envió aparte en un archivo de
Word.
Prueba de escritorio - Cola
Para esta parte
mostramos el
llenado de
nuestra lista de
trabajadores
con sus
respectivas
características.
Prueba de escritorio - Pila
Para esta parte realizamos
la impresión de la lista con
los datos de todos los
trabajadores,
Bibliografía
http://www.scielo.org.co/scielo.ph
p?script=sci_arttext&pid=S0123-
921X2015000500008

https://kripkit.com/algoritmo-
iterativo/

http://www.kramirez.net/Discreta
s/Material/Presentaciones/Ecuaci
ones_de_recurrencia_02-03.pdf

También podría gustarte