Está en la página 1de 3

INGENIERIA DE SISTEMAS

16

ESTRUCTURAS DE DATOS (Listas simples)

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; } }

INGENIERIA DE SISTEMAS Clase Cola

17

ESTRUCTURAS DE DATOS (Listas simples)

Cola Nodo first,last push() pop() isEmpty() peek()


Encolar push().- Funcin que inserta un dato en la cola Desencolar pop().-Funcin que devuelve el primer dato de la cola y tambin elimina el primer dato de la cola isEmpty().- Funcin que devuelve true si la pila est vaca, y false si no est vaca. peek().- Funcin que devuelve el primer dato de la cola sin eliminar el dato de la cola

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

ESTRUCTURAS DE DATOS (Listas simples)

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()); } } }

También podría gustarte