Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //VALVERDI, FACUNDO LAUTARO
- //Clase colaCircular se utiliza para resolver todos los ejercicios del TP03
- public class colaCircular {
- private int fin;
- private int frente;
- private int cantidad;
- private final int capacidad=100; // OJO con la capacidad!!!!!
- private int[] contenedor;
- public colaCircular(){
- this.fin=0;
- this.frente=0;
- this.cantidad=0;
- this.contenedor=new int[capacidad];
- }
- public colaCircular(int capacidad){
- this.fin=0;
- this.frente=0;
- this.cantidad=0;
- this.contenedor=new int[capacidad];
- }
- public boolean colaVacia() {
- return this.cantidad <=0;
- }
- public boolean colaLlena() {
- return this.cantidad== this.capacidad;
- }
- public int siguiente(int pos) {
- ++pos;
- if(pos>capacidad) {
- pos=0;
- }
- return pos;
- }
- public void encolar(int numero) {
- if(colaLlena()) {
- throw new RuntimeException("La cola esta llena");
- }
- contenedor[this.fin]=numero;
- this.fin=siguiente(this.fin);
- ++this.cantidad;
- }
- public int desencolar() {
- if(colaVacia()) {
- throw new RuntimeException("La cola esta vacia");
- }
- int numero=this.contenedor[this.frente];
- this.frente=siguiente(frente);
- cantidad--;
- return numero;
- }
- public int frenteCola() {
- if (!colaVacia()){
- return contenedor[frente];
- }else throw new RuntimeException("Cola vacia ");
- }
- public int finCola() {
- if (!colaVacia()){
- return contenedor[fin];
- }else throw new RuntimeException("Cola vacia ");
- }
- public void mostrarCola(){
- int aux=this.frente;
- System.out.print("[");
- while(this.frente!=this.fin) {
- System.out.print(" "+frenteCola());
- this.frente++;
- }
- System.out.print("]");
- System.out.println(" ");
- this.frente=aux;
- }
- /*
- public static colaCircular quitarRepetidoEn2Colas(colaCircular cola1,colaCircular cola2) {
- colaCircular auxCola= new colaCircular();
- int numCola1=0;
- int numCola2=0;
- int auxFrente=cola2.frente;
- int auxFin=cola2.fin;
- while(!cola1.colaVacia()) {
- numCola1=cola1.desencolar();
- while(cola2.frente<auxFin) {
- numCola2=cola2.desencolar();
- if(numCola1 != numCola2) {
- cola2.encolar(numCola2);
- }else {
- auxCola.encolar(numCola2);
- numCola1=cola1.desencolar();
- }
- }
- auxCola.encolar(numCola1);
- }
- return auxCola;
- }
- */
- public static colaCircular quitarRepetido(colaCircular cola) {
- colaCircular auxCola= new colaCircular();
- int numCola=0, num2Cola=0;
- int auxFrente=cola.frente;
- int auxFin=cola.fin;
- while(!cola.colaVacia()) {
- numCola=cola.desencolar();
- while(cola.frente<auxFin) {
- num2Cola=cola.desencolar();
- if (numCola!= num2Cola)
- {
- cola.encolar(num2Cola);
- }
- }
- auxFin=cola.fin;
- auxCola.encolar(numCola);
- }
- return auxCola;
- }
- public static colaCircular unirColas(colaCircular cola1,colaCircular cola2) {
- colaCircular aux= new colaCircular();
- while(!cola1.colaVacia()) {
- aux.encolar(cola1.desencolar());
- }
- while(!cola2.colaVacia()) {
- aux.encolar(cola2.desencolar());
- }
- return aux;
- }
- }
Add Comment
Please, Sign In to add comment