Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Colas
Colas
16
COLAS
Una cola es una estructura de datos, caracterizada por ser una secuencia de elementos en la que la operacin de insercin push se realiza por un extremo y la operacin de extraccin pop por el otro. Tambin se llama estructura FIFO (del ingls First in First Out). Debido a que el primer elemento en entrar ser tambin el primero en salir. Las colas se utilizan en sistemas informticos, transportes e investigacin de operaciones (entre otros), dnde los objetos, personas o eventos son tomados como datos que se almacenan y se guardan mediante colas para su posterior procesamiento. Su implementacin se puede hacer mediante Arrays y mediante listas enlazadas. Implementacin de COLAS mediante listas enlazadas
COLA
last
2 7 4 9
first
first
1 2 7 4
last
9
null
Clase Nodo
info
1
enlace
class Nodo { int info; Nodo enlace; public Nodo(int a) //constructor { info=a; enlace=null; } }
17
class Cola { Nodo first,last; boolean isEmpty() { if(first==null) return true; return false; } void push(int x) { if(isEmpty()) { first=new Nodo(x); last=first; } else { Nodo temp=new Nodo(x); last.enlace=temp; last=temp; } } int pop() { if(isEmpty()) return -1; else { int aux=first.info; first=first.enlace; return aux; } } int peek() { if(isEmpty()) return -1; else return first.info; } }
La estructura de una cola no debe ser modificada. El uso de las colas debe realizarse en otras aplicaciones, como veremos en los siguientes ejemplos.
INGENIERIA DE SISTEMAS
18
Ejemplo 1. Programa que permite insertar 5 datos en una cola posteriormente visualiza los mismos. class pruebaCola { public static void main(String[] args) { Cola c=new Cola(); c.push(1); c.push(2); c.push(3); c.push(4); c.push(5); while(!c.isEmpty()) System.out.print(c.pop()+" "); } Ejemplo 2. Programa que permite insertar N datos en una cola, posteriormente elimina los datos pares. (utilizando una cola auxiliar) import java.util.*; class elimnar { public static void main(String[] args) { Scanner en=new Scanner(System.in); Cola c=new Cola(); Cola c2=new Cola(); int N=en.nextInt(); for(int i=0;i<N;i++) c.push(en.nextInt()); while(!c.isEmpty()) { if(c.peek()%2==0) c.pop(); else c2.push(c.pop()); } while(!c2.isEmpty()) { System.out.print(c2.peek()+" "); c.push(c2.pop()); } } }