Revista estructura de datos

9
COLAS DEFINICION CARACTERISTICA S OPERACIONES DATOS MAGAZI NE CODIFICACIÓN DE COLAS C++ JAVA TIPOS DE COLA COLA LINEAL COLA CIRCULAR Enero 2016 Patrocinador es ESTRUCTURA DE DATOS F I F O FIRST IN FIRST OUT

Transcript of Revista estructura de datos

Page 1: Revista estructura de datos

COLAS• DEFINICION• CARACTERISTIC

AS• OPERACIONES

DATOSMAGAZINE CODIFICACIÓN

DE COLASC++JAVATIPOS DE COLACOLA LINEALCOLA CIRCULAR

Enero 2016

Patrocinadores

ESTRUCTURA DE DATOS

FIFO

FIRST INFIRSTOUT

Page 2: Revista estructura de datos

ENGUELBERT ADRIÁN GARCIA PERNALETE26’Formación ACADEMICA Bachiller en Ciencias (2007).UE Nuestra Señora del Rosario, Edo. Miranda.Ingeniería Computación.7mo Semestre.Universidad Fermín Toro, Edo Lara.Chef Internacional Centro de Estudios Gastronómicos de Cabudare, Edo Lara.

EXPERIENCIA LABORALLittle Venice Bed & Breakfast (Reino Unido)Cargo: Encargado

Punto Inter La EstanciaCargo: Agente Integral

Interzona Royal Park Cargo: Agente Integral

CURSOSREALIZADOS

ESOL - ENTRY 3 SPEAKING AND LISTENING: BUCKINGHAMSHIRE ADULT LEARNING; AYLESBURY, BUCKINGHAMSHIRE UNITED KINGDOM.OPEN ENGLISH: CURSO DE INGLÉS ONLINE.

HABILIDADESPROACTIVO-DINÁMICO.CAPACIDAD PARA TRABAJAR BAJO PRESIÓN.MANEJO DE EQUIPOS DE COMPUTACIÓN.

EDITOR

Page 3: Revista estructura de datos

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 (del inglés First In First Out), 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 procesamiento. La variable utilizada para representar la cola para programar en c++ es la letra “Q”.

COLA Usos concretos de la colaLa utilización de este método programático es que sólo podemos acceder al primer y al último elemento de la estructura, de tal manera que los elementos sólo se pueden eliminar por el principio y sólo se pueden añadir por el final de la cola.

Page 4: Revista estructura de datos

Operaciones BásicasCrear: se crea la cola vacía.Encolar (añadir, entrar, insertar): se añade un elemento a la cola. Se añade al final de esta.Desencolar (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró.Frente (consultar, frente): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró

Representación de las colas

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. Las aplicaciones utilizan una cola para almacenar elementos en su orden de aparición o concurrencia

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 (first-in-firs-out, primero en entrar//?primero en salir o bien primero en llegar/primero en ser servido).Las colas se representan por listas enlazadas o por arrayas. Se necesitan dos punteros: frente (f) y final(r), y la lista o arraya de “n” elementos (LONGMAX).

Page 5: Revista estructura de datos

COLA CIRCULARCola circular: Es una estructura de datos en la que los elementos están de forma circular y cada elemento tiene un sucesor y un predecesor. Los elementos pueden consultarse, añadirse y eliminarse únicamente desde la cabeza del anillo que es una posición distinguida. Existen dos operaciones de rotaciones, una en cada sentido, de manera que la cabeza del anillo pasa a ser el elemento sucesor, o el predecesor, respectivamente, de la cabeza actual. Existe una implementación muy común de la cola que se conoce como cola circular, esta implementación aprovecha el espacio en memoria de la computadora de la siguiente forma: inicialmente aparta un espacio para la cola, conforme llegan los elementos los va agregando al final, cuando remueve un elemento lo hace del inicio de la cola, una vez que ha terminado con el espacio de memoria que había apartado, revisa si ya se liberó el espacio al inicio de la cola y "da la vuelta" para aprovechar el espacio al máximo, la implementación que se presenta a continuación es la de una cola circular.

Page 6: Revista estructura de datos

public void inserta(Elemento x) { Nodo Nuevo; Nuevo = new Nodo(x, null); if (NodoCabeza == null) { NodoCabeza = Nuevo; } else { NodoFinal.Siguiente = Nuevo; } NodoFinal = Nuevo; } public Elemento cabeza() throws IllegalArgumentException { if (NodoCabeza == null) { throw new IllegalArgumentException(); } else { return NodoCabeza.Info; } } public Cola() { // Devuelve una Cola vacía NodoCabeza = null; NodoFinal = null; }

COLA EN JAVA

Page 7: Revista estructura de datos

COLA EN C++

#define COLA // Define la cola using namespace std; template <class T> class Cola{ private: struct Nodo{ T elemento; struct Nodo* siguiente; }* primero; struct Nodo* ultimo; unsigned int elementos; public: Cola(){ elementos = 0; } cout<<" Hola Mundo! " <<endl; cout<<" Hello, World! " <<endl; ~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;

Page 8: Revista estructura de datos

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

Page 9: Revista estructura de datos

OPERACIONES COLA CIRCULARALGORITMO DE INICIALIZACIÓN

               F < -- 0               A<-- 0

ALGORITMO PARA INSERTAR               Si (F+1=A) ó (F=1 y A=máximo)

entonces                       mensaje (overflow)               en caso contrario                       inicio                               si

A=máximo entonces                                       A<--1                                       cola[A]<--

valor                               en caso contrario                                       A <--A+1                                        cola[A]<--

valor                               si F=0 entonces                                        F <-- 1              

         fin

ALGORITMO PARA EXTRAER               Si F=0 entonces                       mensaje

(underflow)               en caso contrario                       x <-- cola[F]                        si F=A

entonces                               F <-- 0                               A<-- 0                        en caso

contrario                               si F=máximo entonces                                       F <--1 en caso

contrario F <-- F+1