4
Desarrollar la implementación de una lista del tipo pila o LIFO (Last Input First Output) y de una lista del tipo cola o FIFO (First Input First Output). Las implementaciones deben ser genéricas, es decir, deben aceptar cualquier tipo de objeto. Además, definir un tipo genérico Lista imponga el API genérico de cualquier tipo de lista (añadir y extraer elementos). La clase Actividad4 tiene un método main en el que se crearán los dos tipos de lista, se les añadirá los mismos elementos y en el mismo orden. Se comprobará el orden en el que se extraen los elementos en cada lista. Solución: package pilas; public class Pilas { public static void main(String[] args) { // Se crean las pilas ColaLifo lifo = new ColaLifo(); ColaFifo fifo = new ColaFifo(); // Se añaden los elementos a ambas pilas desde el teclado : int dato=0; for(int i=0;i<10;i++){ System.out.println("Introduce el dato " + i + ":"); dato=Lector.leerInt(); lifo.Añadir(dato); fifo.Añadir(dato); } System.out.println("Datos en pila LIFO:"); int longitud = lifo.getLongitud(); for(int i=0;i<longitud;i++){ System.out.print(" Dato " + i + ": " + lifo.Extraer()); } longitud = fifo.getLongitud(); System.out.println("\nDatos en pila FIFO:"); for(int i=0;i<longitud;i++){ System.out.print(" Dato " + i + ": " + fifo.Extraer());

Colas Java

  • Upload
    boody8

  • View
    59

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Colas Java

Desarrollar la implementación de una lista del tipo pila o LIFO (Last Input First Output) y de una lista del tipo cola o FIFO (First Input First Output). Las implementaciones deben ser genéricas, es decir, deben aceptar cualquier tipo de objeto.

Además, definir un tipo genérico Lista imponga el API genérico de cualquier tipo de lista (añadir y extraer elementos).

La clase Actividad4 tiene un método main en el que se crearán los dos tipos de lista, se les añadirá los mismos elementos y en el mismo orden. Se comprobará el orden en el que se extraen los elementos en cada lista.

Solución:package pilas;

public class Pilas {

public static void main(String[] args) {// Se crean las pilasColaLifo lifo = new ColaLifo();ColaFifo fifo = new ColaFifo();

// Se añaden los elementos a ambas pilas desde el teclado:int dato=0;for(int i=0;i<10;i++){

System.out.println("Introduce el dato " + i + ":");dato=Lector.leerInt();lifo.Añadir(dato);fifo.Añadir(dato);

}

System.out.println("Datos en pila LIFO:");int longitud = lifo.getLongitud();for(int i=0;i<longitud;i++){

System.out.print(" Dato " + i + ": " + lifo.Extraer());}

longitud = fifo.getLongitud();System.out.println("\nDatos en pila FIFO:");for(int i=0;i<longitud;i++){

System.out.print(" Dato " + i + ": " + fifo.Extraer());}

}}

package pilas;

public interface Pila {public void Añadir (Object obj);

Page 2: Colas Java

public Object Extraer();public int getLongitud();

}

package pilas;

public class ColaFifo implements Pila{private Nodo primero = null;private Nodo ultimo = null;private int longitud = 0;

// nodoprivate static class Nodo{

Object objeto;Nodo siguiente;

}

public void Añadir(Object obj){Nodo aux = new Nodo();aux.objeto=obj;if(longitud==0){

primero=aux;}else{

ultimo.siguiente=aux;}ultimo=aux;longitud++;

}

public Object Extraer(){Object obj = new Object();if(longitud==0){

return null; // La cola está vacía}obj=primero.objeto;primero=primero.siguiente;longitud--;return obj;

}

public int getLongitud(){return longitud;

}}

package pilas;

Page 3: Colas Java

public class ColaLifo implements Pila {private Nodo top = null;private int longitud = 0;

// nodoprivate static class Nodo{

Object objeto;Nodo siguiente;

}

public void Añadir(Object obj){Nodo aux = new Nodo();aux.objeto=obj;aux.siguiente=top;top=aux;longitud++;

}

public Object Extraer(){if(top==null){

return null; // La cola está vacía}Object obj = top.objeto;top = top.siguiente;longitud--;return obj;

}

public int getLongitud(){return longitud;

}}