hola, tengo unas cuantas dudas para unos programitas que tengo hecho para unas tareas
bueno les dejo primero los codigos para que vean
Pilas: Código PHP:
import javax.swing.*;
public class pila
{
pila()
{
}
int vacia(int tope)
{
if (tope==0)
{
JOptionPane.showMessageDialog(null,"Pila Vacia");
return (1);
}
else
{
JOptionPane.showMessageDialog(null,"Pila No Vacia");
return (0);
}
}
int llena(int tope, int max)
{
if (tope==max)
{
JOptionPane.showMessageDialog(null,"Pila Llena");
return (1);
}
else
{
JOptionPane.showMessageDialog(null,"Pila No Llena");
return (0);
}
}
int insertar(int vect[], int tope, int dato, int maxi)
{
int cont;
int x;
x=llena(tope, maxi);
if(x==1)
{
JOptionPane.showMessageDialog(null,"Pila Llena, No Hay Inserccion");
return (maxi);
}
else
{
tope++;
vect[tope]=dato;
return (tope);
}
}
int borrar (int vecto[], int tope, int datux, int maxim)
{
int aux;
aux=tope;
int v;
v=vacia(tope);
if(v==1)
{
JOptionPane.showMessageDialog(null,"Pila Vacia, No Hay Borrado");
return (tope);
}
else
{
//datux=vecto[ux];
vecto[aux]=0;
aux--;
return (aux);
}
}
void imprimir(int vec[],int max)
{String x="";
for(int ciclo=0;ciclo<max;ciclo++)
{
x+="Posicion "+(ciclo+1)+"=[ "+vec[ciclo]+" ]\n";
}
JOptionPane.showMessageDialog(null,"Mi Pila\n"+x);
}
public static void main (String[] args)
{
pila obj = new pila();
int xuxa[]=new int [5];
int maximo=5;
int topesito =-1;
String auxmain;
int auxmain2;
int ciclo;
for(ciclo=0; ciclo<maximo; ciclo++)
{
int datito=Integer.parseInt(JOptionPane.showInputDialog(null, "Insertar Dato"));
topesito=obj.insertar(xuxa, topesito, datito, maximo);
}
obj.imprimir(xuxa,maximo);
auxmain=JOptionPane.showInputDialog(null, "¿Desea Borrar Datos?\n Si o No");
if(auxmain.compareToIgnoreCase("si")==0)
{
auxmain2=Integer.parseInt(JOptionPane.showInputDialog(null, "¿Cuantos Datos Desea Borrar?"));
for(int ciclo2=0; ciclo2<auxmain2; ciclo2++)
{
int borrador=Integer.parseInt(JOptionPane.showInputDialog(null, "Dato a Borrar"));
topesito=obj.borrar(xuxa, topesito, borrador, maximo);
}
obj.imprimir(xuxa,maximo);
}
else
{
JOptionPane.showMessageDialog(null,"Proceso Terminado");
}
}
}
Colas: Código PHP:
import javax.swing.*;
public class Colas
{
int ayuda=10;
int vec[] = new int[ayuda];
int frente=0;
int ultimo=-1;
void insertar()
{
if(ultimo==vec.length-1)
{
JOptionPane.showMessageDialog(null,"Cola Llena");
}
else
{
ultimo++;
vec[ultimo]=Integer.parseInt(JOptionPane.showInputDialog(null,"introduce un dato"));
}
}
void borrar_frente()
{
if(ultimo==-1)
{
JOptionPane.showMessageDialog(null,"Cola Vacia");
}
else
{
JOptionPane.showMessageDialog(null,"Se Borro El Dato: ( "+vec[frente]+" )");
for(int alfa=frente;alfa<ultimo;alfa++)
{
vec[alfa]=vec[alfa+1];
}
vec[ultimo]=0;
ultimo--;
}
}
void borrar_todo()
{
frente=0;
ultimo=-1;
JOptionPane.showMessageDialog(null,"La Cola Ha Sido Completamente Eliminada:\n");
}
void imprimir()
{
if(ultimo==0)
{
JOptionPane.showMessageDialog(null,"\nCola Vacia, No Hay Datos");
}
else
{
String mostrar="";
for(int beta=frente;beta<=ultimo;beta++)
{
mostrar=mostrar+vec[beta];
}
JOptionPane.showMessageDialog(null,"El Primer Dato Es: "+vec[frente]);
JOptionPane.showMessageDialog(null,"El Ultimo Dato Es: "+vec[ultimo]);
JOptionPane.showMessageDialog(null,"Los Datos Son:\n"+mostrar);
}
}
public static void main (String[] args)
{
Colas obj = new Colas();
int ayudante=0;
int aux;
//aux=obj.ayuda;
while(ayudante!=5)
{
ayudante=Integer.parseInt(JOptionPane.showInputDialog(null,
"1. Insertar dato\n"+" 2.Borrar Dato Inicial\n"+" 3.Borrar Toda La Cola\n"+"4. Mostrar Los Datos\n"+"\n" +
"5. Salir\n"+"\n" +
"Teclea el numero de la accion a relizar:"));
switch(ayudante)
{
case 1: obj.insertar();
break;
case 2: obj.borrar_frente();
break;
case 3: obj.borrar_todo();
break;
case 4: obj.imprimir();
break;
case 5: System.exit(0);
break;
default: JOptionPane.showMessageDialog(null,"No se realizo ninguna accion\nOpcion no valida");
break;
}
}
}
}
ahora mi duda es
:
como puedo hacer para invertir los datos de ambos casos?
como puedo hacer para eliminar datos repetidos en ambos casos?
de antemano gracias por su ayuda