Estructura de listas y colas en programacion
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 8,21 KB
listas:
public class ListaEstatica{int dato;
int tamano;
double[] listaArreglo;
ListaEstatica(int tamano){
this.tamano=tamano;
listaArreglo=new double[tamano];}
public boolean estaVacia(){
if(dato==-1){return true;}
else{return false;}}
public void insertar(int elemento, int posicion){
listaArreglo[posicion]=elemento;}
public int buscar(int elemento){
for(int i=0;ipilas:
public class Pila{
private int tamaño; // tamaño de arreglo pila
private int[] pilarreglo;
private int Tope; // Tope de pila
public Pila(int s) // constructor{
tamaño = s; // establece tamaño de arreglo
pilarreglo = new int[tamaño]; // crea el arreglo
Tope = -1; // vacio}public void Push(int j) // pone item en tope de pila {
Tope++;
pilarreglo[Tope] = j; // incrementa tope, inserta item}
public int Pop() // tomar item desde el tope de la pila{
Tope--;
return pilarreglo[Tope]; //accesa item, baja Tope}public int Top() // mirar al tope de la pila{
return pilarreglo[Tope];}public boolean isEmpty() // true si pila esta vacia{
if(Tope == -1)return true;
else return false;}
public boolean isFull() // true si pila esta llena{
if(Tope == tamaño-1)return true;
else return false;}}/** Retorna el tamao i.e cantidad de elementos */
public int tamaño() {
if (esVacia()) {return 0;
} else if (resto==null) {return 1;
} else {return 1+resto.tamao();}}}colas:
class ColaEstatica{
private int tamano;
private int[] colarreglo;
private int frente;
private int fin;
private int numItems;public ColaEstatica(int s) // constructor{
tamano = s;
colarreglo = new int[tamano];
frente = 0;
fin = -1;
numItems = 0;}public void insertar(int j) //pone item al final de cola{
if(fin == tamano-1) //setea el final
fin = -1;
colarreglo[++fin] = j; //incrementa fin e inserta
numItems++; // hay un item mas}public int sacar() //saca item del frente de la cola{
int temp = colarreglo[frente++]; //obtiene valor y saca del frente
if(frente == tamano) //reciclado
frente = 0;
numItems--; //un item menos
return temp;}public int mirarFrente() // mira el frente de la cola{
return colarreglo[frente];}public boolean estaVacia() // true si cola esta vacia{
return (numItems==0);}public boolean estaLlena() // true si cola esta llena{
return (numItems==tamano);}public int tamanoCola() //numero de items de cola{
return numItems;}}
colas negativas
Programa en Java que sirve para generar numeros aleatorios negativos y positivos
y evaluarlos con el uso de colas.
class Col{
int Cola[];
int Frente;
int Final;
int Nulo;
int MaxCola;
public Col(int xMaxCola) {
Cola=new int[xMaxCola+1];
MaxCola=xMaxCola-1;
Nulo=-1;
Frente=Nulo;
Final=Nulo;}public Col(){
MaxCola=100;
Cola=new int[MaxCola+1];
MaxCola=MaxCola-1;
Nulo=-1;
Frente=Nulo;
Final=Nulo;}public void Meter(){
int N=0,aux=(int)(Math.random()*2);
if(aux==0){
N=(int)(Math.random()*25+1);
}else{
N=(int)(Math.random()*25+1);
if(N!=0)
N=-1*((int)(Math.random()*25+1));}
if((Frente==0&&Final==MaxCola)||(Frente==(Final+1))){
System.out.println("Desbordamiento de memoria");
return;
}else{
if(Frente==Nulo) {
Frente=0;
Final=0;
}else if(Final==MaxCola)
Final=0;
e lse
Final+=1;
C ola[Final]=N;}}p ublic void Meter(int Elemento){
if((Frente==0&&Final==MaxCola)||(Frente==(Final+1))){
System.out.println("Desbordamiento de memoria");
return;}else{
if(Frente==Nulo) {
Frente=0;
F inal=0;
}else if(Final==MaxCola)
Final=0;
else
Final+=1;
Cola[Final]=Elemento;}}public int Sacar(){
int aux;
if(Frente==Nulo) {
System.out.println("Cola Vacia");
return 0;}else{
aux=Cola[Frente];
if(Frente==Final) {
Frente=Nulo;
Final=Nulo;
} else if(Frente==MaxCola)
Frente=0;
else
F rente+=1;
r eturn aux;}}
public Col Negativos(Col C1){
Col aux=new Col(C1.MaxCola);
int N;
for(int i=0;i<=C1.MaxCola;i++){
N=C1.Sacar();
if(N<0){
aux.Meter(N);}}
r eturn aux;}p ublic void MostrarCola() {
System.out.println("\\n< Frente \\n||Numero|| --> Final \\n**Numero** --> Frente/Final\\n");
for(int i=0;i<=MaxCola;i++){
if (Frente == i && Final == i)
System.out.print("**" + Cola[i] + "** \\t");
else if (Frente == i){
System.out.print("<<" + Cola[i] + "<< \\t");}
else if (Final == i)
System.out.print("||" + Cola[i] + "|| \\t");
e lse
System.out.print(Cola[i] + "\\t");}}}class ColitaNegativa{
public static void main(String ramms[])throws IOException {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int Op,tam=100;
Col C1=new Col(tam);
Col aux=new Col();
do{
S ystem.out.println("\\nMenu");
System.out.println("1: Crear Cola");
System.out.println("2: Ver La Cola");
System.out.println("3: Cola De Negativos");
System.out.println("4: Ver La Cola de Negativos");
System.out.println("5: Salir");
System.out.print("Elija una Opcion: ");
Op=Integer.parseInt(in.readLine());
switch(Op){
case 1: for(int i=0;icolas identicas
I dentifica si dos colas son Iguales
class Cola{
int Cola[];
int Frente;
int Final;
int Nulo;
int MaxCola;
public Cola(int xMaxCola){
Cola=new int[xMaxCola+1];
MaxCola=xMaxCola-1;
Nulo=-1;
Frente=Nulo;
Final=Nulo;}public Cola(){
MaxCola=10;
Cola=new int[MaxCola+1];
MaxCola=MaxCola-1;
Nulo=-1;
Frente=Nulo;
Final=Nulo;}p ublic void Meter(){
int N=(int)(Math.random()*100+1);
if((Frente==0&&Final==MaxCola)||(Frente==(Final+1))){
System.out.println("Desbordamiento de memoria");
return;}else{
if(Frente==Nulo) {
Frente=0;
Final=0;
}else if(Final==MaxCola)
Final=0;
else
Final+=1;
Cola[Final]=N;
}
}public void Meter(int Elemento)
{
if((Frente==0&&Final==MaxCola)||(Frente==(Final+1)))
{
System.out.println("Desbordamiento de memoria");
return;
}else
{
if(Frente==Nulo)
{
Frente=0;
Final=0;
}else if(Final==MaxCola)
Final=0;
else
Final+=1;
Cola[Final]=Elemento;
}
}public int Sacar()
{
int aux;
if(Frente==Nulo)
{
//System.out.println("Cola Vacia");
return 0;
}else
{
aux=Cola[Frente];
if(Frente==Final)
{
Frente=Nulo;
Final=Nulo;
}else if(Frente==MaxCola)
Frente=0;
else
Frente+=1;
return aux;
}
}public void MostrarCola()
{
System.out.println("\\n< Frente \\n||Numero|| --> Final \\n**Numero** --> Frente/Final\\n");
for(int i=0;i<=MaxCola;i++)
{
if (Frente == i && Final == i)
System.out.print("**" + Cola[i] + "** \\t");
else if (Frente == i)
{
System.out.print("<<" + Cola[i] + "<< \\t");
}
else if (Final == i)
System.out.print("||" + Cola[i] + "|| \\t");
else
System.out.print(Cola[i] + "\\t");
}
}
public boolean SonIguales(Cola c1,Cola c2)
{
boolean simon=false;
for(int i=0;i<=c1.MaxCola;i++)
{
if(c1.Sacar()!=c2.Sacar())
{
simon=false;
break;
}else
simon=true;
}
return simon;
}
}class ColasIdenticas
{
public static void main(String[] ramms)throws IOException
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
int Op,tam=5;
Cola C1,C2,aux;
C1=new Cola(tam);
C2=new Cola(tam);
aux=new Cola(1);
do
{
System.out.println("\\nMenu");
System.out.println("1: Crear Colas");
System.out.println("2: Ver Las Colas");
System.out.println("3: Comparar las Colas");
System.out.println("4: Salir");
System.out.print("Elija una Opcion: ");
Op=Integer.parseInt(in.readLine());
switch(Op)
{
case 1:
System.out.print("Creacion Manual(1)/Automatica(2): ");
Op=Integer.parseInt(in.readLine());
if(Op==1)
{
for(int i=0;i