Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/10/2012, 11:35
brosso8
 
Fecha de Ingreso: octubre-2012
Mensajes: 1
Antigüedad: 12 años
Puntos: 0
Exclamación Pilas y Colas

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 topeint 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 topeint datoint maxi)
    {
        
int cont;
        
int x;
        
x=llena(topemaxi);
        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 topeint datuxint 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=0ciclo<maximociclo++)
        {
            
int datito=Integer.parseInt(JOptionPane.showInputDialog(null"Insertar Dato"));
            
topesito=obj.insertar(xuxatopesitodatitomaximo);
        }
        
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=0ciclo2<auxmain2ciclo2++)
            {
                
int borrador=Integer.parseInt(JOptionPane.showInputDialog(null"Dato a Borrar"));
                
topesito=obj.borrar(xuxatopesitoborradormaximo);
                
            }
            
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 
2obj.borrar_frente();
                break;
                case 
3obj.borrar_todo();
                break;
                case 
4obj.imprimir();
                break;
                case 
5System.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