Java Code for Queue and Stack Data Structures
Queue Class
First, we import the ArrayList
class:
import java.util.ArrayList;
This is the Cola
(Queue) class, which extends ArrayList
:
public class Cola extends ArrayList {
public void encolar(Object dato) {
if (dato != null) {
if (!esLlena())
this.add(dato);
else
System.out.println("La cola esta llena.");
} else {
System.out.println("Introduzca un dato no nulo");
}
}
public void encolar(int pos, Object dato) {
if (dato != null) {
if (!esLlena())
this.add(pos, dato);
else
System.out.println("La cola esta llena.");
} else {
System.out.println("Introduzca un dato no nulo");
}
}
public void eliminar(int indice) {
this.remove(indice);
}
public boolean esLlena() {
return this.size() == 13;
}
public void desencolar() {
if (this.size() > 0) {
this.remove(0);
}
}
public Object getPosicion(int pos) {
return this.get(pos);
}
public Object frente() {
Object datoAuxiliar = null;
if (this.size() > 0) {
datoAuxiliar = this.get(0);
}
return datoAuxiliar;
}
public boolean vacia() {
return this.isEmpty();
}
public void enlistar() {
for (int i = 0; i < this.size(); i++) {
System.out.println(this.get(i));
}
}
}
Stack Class
This is the Pila
(Stack) class, which also extends ArrayList
:
import java.util.ArrayList;
public class Pila extends ArrayList {
public void apilar(Object dato) {
if (dato != null) {
if (!esLlena()) {
this.add(dato);
} else {
System.out.println("La pila esta llena.");
}
} else {
System.out.println("Introduzca un dato no nulo");
}
}
public void eliminar(int indice) {
this.remove(indice);
}
public boolean esLlena() {
return this.size() == 12;
}
public void desapilar() {
if (size() > 0) {
this.remove(this.size() - 1);
}
}
public Object cima() {
Object datoAuxiliar = null;
if (this.size() > 0) {
datoAuxiliar = this.get(this.size() - 1);
}
return datoAuxiliar;
}
public boolean vacia() {
return this.isEmpty();
}
public void enlistar() {
for (int i = 0; i < this.size(); i++) {
System.out.println(this.get(i));
}
}
}
Test Class
Finally, the Test
class to demonstrate the functionality:
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
Cola cola = new Cola();
Pila dentistas = new Pila();
Pila medicos = new Pila();
cola.encolar("Jose");
cola.encolar("Mariana");
cola.encolar("Luisa");
cola.encolar("Olga");
cola.encolar("Manuel");
cola.encolar("Fabiola");
cola.encolar("Andrea");
cola.encolar("Paola");
cola.encolar("Tomas");
cola.encolar("Arturo");
cola.encolar("Pilar");
cola.encolar("Ines");
for (int i = 0; i < 12; i++) {
System.out.println("\u000c");
System.out.println(cola.getPosicion(i) + ", ¿Qué especialista necesitas?");
System.out.println("1.- Dentista");
System.out.println("2.- Médico");
int id = Integer.parseInt(in.readLine());
while (id < 1 || id > 2) {
System.out.println("Error. El número ingresado no es correcto");
id = Integer.parseInt(in.readLine());
}
if (id == 1) {
dentistas.apilar(cola.get(i));
} else if (id == 2) {
medicos.apilar(cola.get(i));
}
}
System.out.println("Personas que irán al Dentista:");
dentistas.enlistar();
System.out.println("");
System.out.println("-----");
System.out.println("");
System.out.println("Personas que irán al Médico:");
medicos.enlistar();
}
}