Vous êtes sur la page 1sur 5

class Main{

public static void main(String[] args){


System.out.println("Binvenido a la Clase cola");
ColaSimple c= new ColaSimple(10);
c.poner(4);
c.poner(2);
c.poner(8);
c.poner(5);
c.poner(6);
c.poner(7);
c.poner(8);
c.poner(9);
c.poner(10);
c.poner(11);
c.imprimir();

//ejercicio 1
System.out.println("\n");
// se eliminan los 2 elementos primeros del arreglo
/*c.sacar();
c.sacar();

//se comprueba que esta disponible el espacio para los 10 elemento a partir de la
posicion 0 del arreglo
c.poner(1);
c.poner(2);
c.poner(3);
c.poner(4);
c.poner(5);
c.poner(6);
c.poner(7);
c.poner(8);
c.imprimir();*/

//ejercicio 2
/*System.out.println("\n");
c.invertirCola(c);
c.imprimir();*/

//ejercico3
/*System.out.println("\n");
c.sustituir(10,20);
c.imprimir();*/

/*ColaCircular Ccir=new ColaCircular();


Ccir.insertar(4);
Ccir.insertar(5);
Ccir.insertar(6);
Ccir.insertar(7);
Ccir.imprimir();
System.out.println("Primer elemento --> "+ Ccir.frenteCola());
Ccir.quitar();
Ccir.imprimir();
System.out.println("Primer elemento --> "+ Ccir.frenteCola());*/
}
}
class ColaCircular{
private static int maxtamq = 99;
private int frenteColaC;
private int finColaC;
private int tamColaC;
private int datos[];
//inicializa la cola vac�a
public ColaCircular(){
this.frenteColaC = 0;
this.finColaC = maxtamq-1;
this. datos = new int[maxtamq];
}
//avavnza una posici�n
public int siguiente(int r){
return (r+1) % maxtamq;
}
//comprueba si est� vac�a
public boolean colaVac�a(){
return this.frenteColaC== this.siguiente(this.finColaC);
}
//comprueba si est� llena
public boolean colaLlena(){
return this.frenteColaC == this.siguiente(this.siguiente(this.finColaC));
}
public void imprimir(){
int iteraciones = this.finColaC-this.frenteColaC;
for(int i=0;i<=iteraciones;i++){
int aux = this.quitar();
System.out.println(aux);
this.insertar(aux);
}
}
public void insertar(int elemento){
if(!this.colaLlena()){
this.finColaC= this.siguiente(this.finColaC);
this.datos[this.finColaC]= elemento;
}else{
System.out.println("Desvordamiento en la cola");
}
}
public int quitar(){
if(!this.colaVac�a()){
int tm= this.datos[this.frenteColaC];
this.frenteColaC= this.siguiente(this.frenteColaC);
return tm;
}
return -1;
}
public void borrarCola(){
this.frenteColaC=0;
this.finColaC= maxtamq-1;
}
public int frenteCola(){
if(!this.colaVac�a()){
return this.datos[this.frenteColaC];
}else{
System.out.println("Cola vac�a");
}
return -1;
}
}
class Pila{
private int cima; // indice del ultimo elemento de la pila
private int tama�o; //capacidad total de la pila
private int datos[];//arreglo de elementos de la pila

public Pila(int tama�o){


this. datos = new int[tama�o];
this.cima = -1;
this.tama�o = tama�o;
}
public int cima (){
return this.cima;
}

public int tama�o(){


return this.tama�o;
}
// Inserta un entero en la parte superior de la pila
public boolean Poner(int e){
if (this.estaLlena())
return false;
this.cima = this.cima + 1;
this.datos[this.cima] = e;
return true;
}
// Elimina el elemento que est� en la cima de la pila. Devuelve -1 si est� vacia la
pila
public int Sacar(){
if (this.estaVacia())
return -1;
else{
int result= this.datos[this.cima];
this.cima = this.cima - 1;
return result;
}
}
// Devuelve el elemento que est� en la cima de la pila y no lo elimina
public int tope(){
if (this.estaVacia())
return -1;
else{
return this.datos[this.cima];
}
}
public boolean estaLlena(){
if (this.cima == tama�o-1)
return true;
else
return false;

}
// Verifica si la pila est� vacia
public boolean estaVacia(){
if (this.cima == -1)
return true;
else
return false;
}
}
// esta clase utiliza un arreglo para almacenar los elementos de la cola
class ColaSimple{
private int frenteCola; // posici�n del primer elemento de la cola
private int finCola; //posici�n del �ltimo elemento de la cola
private int tamCola; //capacidad total de la cola
private int elementos[];//arreglo de elementos

public ColaSimple(int tamanno){


this. elementos = new int[tamanno];
this.frenteCola = 0;
this.tamCola = tamanno;
this.finCola = 0;
}
//Devuelve la posici�n del frente de la cola
public int frenteCola(){
return this.frenteCola;
}
public int finCola(){
return this.finCola;
}
//Devuelve el tamano de la cola
public int tamannoCola(){
return this.tamCola;
}
//Devuelve la cantidad real de elementos que tiene una cola
public int cantidadElementosCola(){
return this.finCola -this.frenteCola;
}

// Inserta un entero en la parte superior de la cola


public boolean poner(int e){
if (this.estaLLena())
return false;
this.elementos[this.finCola] = e;
this.finCola = this.finCola + 1;
return true;
}
// Elimina el elemento que est� en el frente de la cola. Devuelve -1 si est� vacia
la pila
public int sacar(){
int aux=0,con1=0,con2=1;
if (this.estaVacia())
return -1;
else{
int result= this.elementos[this.frenteCola];
this.frenteCola = this.frenteCola + 1;
for(int a=0;a<this.cantidadElementosCola();a++){
aux=this.elementos[con2];
this.elementos[con1]= aux;
con2++;
con1++;
}
this.frenteCola=0;
this.finCola = this.finCola - 1;
return result;
}
}
public ColaSimple invertirCola(ColaSimple c){
Pila p = new Pila(c.tamannoCola());
for(int a=0;a<c.tamannoCola();a++){
p.Poner(c.sacar());
}
for(int a=0;a<c.tamannoCola();a++){
c.poner(p.Sacar());
}
return c;
}
public void sustituir(int n,int nuevo){
for(int a=0;a<this.cantidadElementosCola();a++){
if(this.elementos[a] == n){
this.elementos[a]=nuevo;
}
}
}
// Devuelve el elemento que esta en el frente de la cola y no lo elimina
public int mostrar(){
if (this.estaVacia())
return -1;
else{
return this.elementos[this.frenteCola];
}
}
// Verifica si la cola est� llena
public boolean estaLLena(){
if (this.finCola == this.tamCola)
return true;
else
return false;
}
// Verifica si la cola est� vacia
public boolean estaVacia(){
if (this.frenteCola == finCola)
return true;
else
return false;
}
public void vaciarCola(){
this.frenteCola = 0;
this.finCola = 0;
this.elementos = new int[this.tamCola];
}
public void imprimir(){
int iteraciones = this.finCola-this.frenteCola;
for(int i=0;i<iteraciones;i++){
int aux = this.sacar();
System.out.println(aux);
this.poner(aux);
}
}
}

Vous aimerez peut-être aussi