7
Modulo 3 Rodrigo Alfaro Web Something Especialista certificado FORTINET Especialista certificado CISCO E-Mail: [email protected] Estructura de datos

Modulo 3

Embed Size (px)

DESCRIPTION

Pilas y colas, ejercicios en php

Citation preview

Page 1: Modulo 3

Modulo 3Rodrigo AlfaroWeb SomethingEspecialista certificado FORTINETEspecialista certificado CISCOE-Mail: [email protected]

Estructura de datos

Page 2: Modulo 3

Indice

- Definicion de Pilas(stack).- Definicion de colas().- Ejemplos.- Ejercicios.

Page 3: Modulo 3

Definicion de pila(stack)

Una pila (stack) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (Last In First Out(«último en entrar, primero en salir»)) que permite almacenar y recuperar datos.

Esta estructura se aplica en informática debido a su simplicidad y orden de la estructura.

Para el manejo de los datos se cuenta con dos operaciones básicas:

• Apilar (push), que coloca un objeto en la pila. • Retirar (pop), que retira el último elemento apilado.

En cada momento sólo se tiene acceso a la parte superior de la pila, al último objeto apilado (denominado TOS, Top of Stack). La operación retirar permite la obtención de este elemento, que es retirado de la pila permitiendo el acceso al siguiente (apilado con anterioridad), que pasa a ser el nuevo TOS.

Por analogía con objetos cotidianos, una operación «push» seria igual a colocar un plato sobre una pila de platos y la operación «pop» retirar el plato.

Las pilas(stacks) se ocupan en los siguientes contextos:

• Evaluación de expresiones en notación post fija.• Reconocedores sintácticos de lenguajes independientes del contexto.• Implementación de recursividad.

Page 4: Modulo 3

Definicion de colas(queue)

Una cola (fila, queue) 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 (First In First Out), debido a que el primer elemento en entrar será también el primero en salir.

Las colas(queue) se utilizan en sistemas informáticos, transportes y operaciones de investigación, dónde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas(queue) 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.

La particularidad de una estructura de datos de cola(queue) es el hecho de que sólo podemos acceder al primer y al último elemento de la estructura, de esta forma los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.

Ejemplo de cola(queues) en la vida real : Personas comprando en un supermercado, personas esperando en el cine para ver una película.

Todas son filas(colas(queue)) de espera.

Page 5: Modulo 3

Ejemplo

Para añadir un elemento al final del array utilizamos la función array_push y para leer y eliminar el último elemento añadido utilizamos la función array_pop.

Utilizamos el array como pila para almacenar el estado intermedio de una operación, ej:

Carpeta de ejercicios sera actualizada en dropbox del curso.

Page 6: Modulo 3

Ejercicios

• Ingresar 10 números a una cola, luego realizar la suma de los elementos extrayendo cada uno y sumando hasta que la cola esté vacía.

• Hacer una función que extraiga los 5 primeros elementos de una cola. Se debe considerar el caso de que la cola quede vacía con anterioridad (que tenga menos de 5 elementos).

• Mediante el uso de pilas efectúe la operación de división de dos (de mas de 10 digitos). Para ello utilice el método de restas sucesivas para efectuar la división.

• Escribir un programa que invierta el contenido de una cola. Usted puede utilizar estructuras de datos auxiliares para hacerlo.

• Una matriz de N-filas puede ser vista como N-colas consecutivas, donde la operación de introducir un elemento en la cola, debería recibir el elemento a introducir y el identificador de la cola i donde se desea meter el elemento. Elabore un método que permita implementar la operación inserta_cola en una sucesión de N-colas en un objeto matriz NxM. M es la capacidad máxima de cada cola.

Enjoy!

Page 7: Modulo 3

Gracias por su atencion.

Carpeta dropbox del curso:

https://www.dropbox.com/sh/762l5qfl5y67a5g/1NDJHIhUPV