martes, 17 de junio de 2014

Colas de estructura de datos

Índice


Introducción

Definicion de cola en estructura de datos

Aplicacion de las colas  en estructuras de datos

Operaciones Básicas y auxiliares de las “colas” en estructura de datos

Representación de las “colas” en estructura de datos

TIPOS DE COLAS EN ESTRUCTURA DE DATOS

1.COLA CIRCULAR O ANILLO

2. DOBLE COLA (BICOLA)

Conclusión











INTRODUCCION

En este tema se abordara y se explicara de que consiste la cola en estructura de datos, definiéndola, mostrando sus características y la utilidad que tienen al dia a dia.
Tambien se darán ejemplos para que el tema quede mejor expuesto, se habla también sobre los tipos de colas que hay.



Definicion de cola en estructura de datos
A la cola se le considera un primo cercano de la pila. La cola puede definirse como un contenedor de datos que funciona de acuerdo al principio FIFO (First Input First Output) porque el primer elemento que entra a la cola es el primero que sale. En una cola los datos entran por un extremo llamado final (rear) y se insertan por el otro extremo llamado frente (front). Una buena analogía de esta estructura de datos es un grupo de personas esperando en línea para entrar al cine
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.
Aplicaciones de las colas.
Esta estructura de datos se usa en muchos sistemas operativos, por ejemplo Unix, para llevar el control de la ejecución de procesos, cada proceso en el sistema es almacenado en una lista y esta se va recorriendo, dándole un pequeño tiempo del microprocesador a cada proceso, durante la fracción de segundo de cada proceso este asume que tiene el control total del procesador.



 Operaciones con colas

Crear: 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, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
Otras mas son        

Operaciones Básicas
Insertar. Agregar un elemento al final de la cola
Remover. Remover el primer elemento de la cola.

Operaciones Auxiliares
Llena: Regresa verdadero cuando la cola esta llena.
Vacía: Regresa verdadero cuando la cola esta llena.





Implementacion de colas en java
import java.io.*;
import java.lang.*;
class ColaEstatica
{ int frente, fin, capacidad;
 private int elementos[];
 public ColaEstatica(int cap) {capacidad=cap; elementos=new int[capacidad]; frente=-1; fin=0;}

 public boolean vacia() {return (fin==0) ? true : false;}
 public boolean llena() {return (fin==capacidad)? true : false;}

 public void insertar(int objeto){
 try { if (!llena()) {elementos[fin]=objeto; fin++; }
 else{ System.out.println("Pila Llena"); new Teclado().espera(); }
 }
 catch (java.lang.ArrayIndexOutOfBoundsException Error) { System.out.println("Desborde de Cola"); }
 }

 public int remover() { int x=elementos[0];
 for(int i=0; i<fin-1;i++)
 elementos[i]=elementos[i+1];
 fin--;
 return(x);
 }
 }
 public class pruebaColaEstatica{
 public static void main(String arg[]) throws IOException{
 ColaEstatica cola=new ColaEstatica(5);
 int obj1,opcion;
 Integer cadena=new Integer(0);
 Teclado keyboard = new Teclado();
 do{
 Teclado.clrscr();
 System.out.println("1) Insertar dato");
 System.out.println("2) Remover dato");
 System.out.println("3) Fin de Programa");
 System.out.println("Opcion: "); opcion=cadena.parseInt(keyboard.leer() );
 switch(opcion)
 { case 1: if (!cola.llena() ){System.out.println("Escribe un numero: ");
 cola.insertar(cadena.parseInt(keyboard.leer()) );
 }
 else{ System.out.println("Cola Llena");
 keyboard.espera();
 }
 break;
 case 2:if (!cola.vacia())
 System.out.println("Dato sacado " + cola.remover() );
 else
 System.out.println("Cola Vacia");
 keyboard.espera();
 break;
 case 3: break;
 }
 } while(opcion!=3);
 }
 }
TIPOS DE COLAS EN ESTRUCTURA DE DATOS
COLA CIRCULAR O ANILLO:
Una cola circular o anillo 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. Esta avanza en el sentido de las agujas del reloj. En la figura mostrada muestra una cola circular con un solo dato almacenado. La variable “final” es la posición en donde se hizo la última inserción. Después que se ha producido una inserción, final se mueve circularmente a la derecha.




DOBLE COLA (BICOLA)
Es un tipo de cola especial que permiten la inserción y eliminación de elementos de ambos extremos de la cola. Puede representarse a partir de un vector y dos índices, siendo su representación más frecuente una lista circular doblemente enlazada. Todas las operaciones de este tipo de datos tienen coste constante. Existen dos tipos de la doble cola: · Doble cola de entrada restringida: acepta inserciones solo al final de la cola. · Doble cola de salida restringida: acepta eliminaciones solo al frente de la cola.
 



Conclusión


Llegue a la conclusión de que las colas pueden llegar a ser muy útiles en la organización de la información pero no tanto a la manera de querer ingresar nuevos datos es ahí entonces donde presentan un gran problema ya que solo aceptan información al final o inicio de la cola no al intermedio.

No hay comentarios.:

Publicar un comentario