Glitch - Cola

Post on 30-Mar-2016

214 views 0 download

description

Glitch - Cola Jorge Boscan 17.034798

Transcript of Glitch - Cola

Índice

Cola. Pag. 3

Concepto sobre cola, entérate de uno de las estructura de datos mas usadas del mundo.

Métodos Push-Pull. Pag. 4

Los métodos mas usados en la estructura de datos cola. Ve lo importante que son para todo programador.

Ejemplo en C++. Pag. 5

Como definir una cola en c++ sin usar la librería queue.h

Ejemplo en Python. Pag. 6

Como usan la cola en python haciendo uso en realidad de una lista.

Recreación Pag. 7

Crucigrama para entretenerse con palabras sobre el tópico de la revista.

1

The Glitch es una revista digital dirigida a todos los

amantes de la ciencia de la eléctrica, informá�ca/

computación y telecomunicaciones. Por sugerencia a la

profesora de Analisis de Algoritmo estoy cambiando la edi-

torial. Hola profe!.

Aquí en The Glitch Digital Magazine esperamos que

les sea ú�l y prac�co la información dada y que desde hoy

sean subscriptores de esta revista.

Atentamente:

Jorge Boscán

2

Cola—Queue

En la computación, una pila es una estructura de datos abstractas con la regla "El primero que entra es

el primero que sale"; esto quiere decir que el primer elemento que se agregue a la cola será el primero ele-

mento que se eliminara de la cola.

Esto es equivalente para los requerimientos de los elementos que van después del primero. Las colas

proveen servicios en la computación, transporte e investigación de operaciones donde existen varias enti-

dades como datos, objetos, personas o eventos que son almacenados y guardados para ser procesados

luego. En este contexto, la cola ejecuta la función de un buffer.

La cola es común en los programas de computación, donde son implementados como estructuras de

datos pareadas con rutinas de acceso, como una estructura de dato abstracta o en una clase orientada a

objeto de un lenguaje. Su implementación más común es como buffer circular y listas encadenadas.

En caso de estar vacía la cola, borrar un elemento sería imposible hasta que no se añade un nuevo ele-

mento. A la hora de añadir un elemento podríamos darle una mayor importancia a unos elementos que a

otros y para ello se crea un tipo de cola especial que es la cola de prioridad.

3

Por: Jorge Boscán

MetodosPush-Pull

Método Push

La operación push es una de las operaciones principales de las colas, esta permite la inserción de un

dato dentro de la cola y colocándolo en el lugar que le corresponde según las reglas de la cola. Si la cola

esta vacía y se inserta un dato, este será insertado en la primera posición; si la cola ya tiene datos en ella,

al hacer un push, el nuevo dato será insertado en la posición n+1 donde n es la posición del último dato que

fue insertado anteriormente. Si la cola no es dinámica y tiene límites, es recomendable generar un método

que chequee si la cola está llena y dependiendo de la respuesta poder insertar un dato nuevo de esta forma

evitándonos errores de ejecución out of bound.

Método Pop

La operación pop es otra de las operaciones principales de las colas, esta permite retirar un dato de la

cola según la regla de esta. Si una cola que tiene ya dentro de ella unos datos se le ejecuta el método "pop,

este retirara el dato que está en la posición 1, y correrá los datos que se consigan consecuentes a este

quedando el que estaba en la posición 2 en la 1 y así sucesivamente. Antes de hacer un pop es recomen-

dable usar el método empty() que me dice si la cola esta vacía, de esta manera evitándonos errores de eje-

cución.

4

Por: Jorge Boscán

ColaenC++

#ifndef COLA #define COLA // Define la cola template <class T > class Cola { private : struct Nodo { T elemento ; struct Nodo * siguiente ; // coloca el nodo en la segunda posición } * primero ; struct Nodo * ultimo ; unsigned int elementos ; public : Cola (){ elementos = 0; } ~Cola (){ while ( elementos ! = 0) pop () ; } void push ( const T & elem ){ Nodo * aux = new Nodo ; aux - >elemento = elem ; if ( elementos == 0) primero = aux ; else ultimo - >siguiente = aux ; ultimo = aux ; ++elementos ; } void pop (){ Nodo * aux = primero ; primero = primero - >siguiente ; delete aux ; -- elementos ; } T consultar () const { return primero - >elemento ; } bool vacia () const { return elementos == 0; } unsigned int size () const { return elementos ; } } ;

#endif

5

Por: Jorge Boscán

Redes Heterogeneas

class Queue:

def __init__ ( self , items = None):

if items is None:

items = []

self .__queue = items

def isEmpty( self ):

return len ( self .__queue) == 0

def enqueue( self , obj):

self .__queue.append(obj)

def dequeue( self ):

return self .__queue.pop( 0)

def peek( self ):

return self.__queue[0]

6

ColaenPython

class Queue:

def __init__ ( self , items = None):

if items is None:

items = []

self .__queue = items

def isEmpty( self ):

return len ( self .__queue) == 0

def enqueue( self , obj):

self .__queue.append(obj)

def dequeue( self ):

return self .__queue.pop( 0)

def peek( self ):

return self.__queue[0]

Por: Jorge Boscán

Recreacion:Crucigrama

Palabras a conseguir:

QUEUE PUSH TOP

STACK POP COLA

DATA ESTRUCTURA ABSTRACTO

7

X D F J L U F V D G A L M B F

H R Y H G A B S T R A C T O P

E J N G V F R D C J T R G L M

S D P I L A M P N B V T H E G

T Y K H D H N U K Y T T O P U

R F J X R A C S E R T Y U I O

U K H F R C J H K G D R Y J M

C B H F R J N C S X Z R E F N

T D I K O G R O U Y G J K L Ñ

U A U T U R F L J N G C K H K

R T J K K S T A C K U Y T G F

A A T A D G K J T R E W C B L

H K Y C E T P O P I H F R D M

A C R T G F W I K I P J Ñ M D

B H U Y T K G R E W B J F Y H

Publicidad

8