Foros del Web » Programación para mayores de 30 ;) » Java »

Invertir cola en java

Estas en el tema de Invertir cola en java en el foro de Java en Foros del Web. Hola . Tengo el siguiente codigo que administra una cola en java. Inserta, elimina, muestra el primero ... Sabeis como podria realizar un metodo que ...
  #1 (permalink)  
Antiguo 08/04/2011, 02:30
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Invertir cola en java

Hola . Tengo el siguiente codigo que administra una cola en java. Inserta, elimina, muestra el primero ... Sabeis como podria realizar un metodo que invierta el contenido de la cola ? GRACIAS DE ANTEMANO !!!

Código PHP:
import java.util.*;

public class 
Cola extends LinkedList {

    
void inicia()
    {
        
clear();
    }

    
void inserta(Object o)
    {
        
addLast(o);
    }

    
Object elimina()
    {
        if (
esbuida()) return null;
        return 
removeFirst();
    }

    
Object primer()
    {
        return 
peekFirst();
    }

    
boolean esbuida()
    {
        return (
size()==0);
    } 
  #2 (permalink)  
Antiguo 08/04/2011, 02:40
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 5 meses
Puntos: 89
Respuesta: Invertir cola en java

Veo que tienes problemas con las inversiones...jajajajaja.

Ya que tienes una pila (lo se por el otro post ) vete cogiendo los elementos de la cola, los vas metiendo en una pila y luego coges los elementos de esa pila y los metes en una cola, así te quedaría tu cola invertida. En pseudocodigo:

Mientras la cola no sea vacia
Apilar primer elemento de la cola
Eliminar primer elemento de la cola
FinMientras
Mientras la pila no sea vacia
Encolar la cima de la pila
Eliminar la cima de la pila
FinMientras
  #3 (permalink)  
Antiguo 08/04/2011, 03:11
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Invertir cola en java

Problemas son pocos .. jajajajaj
Ok , me lo miro luego y si hay algun problema avisare .
Gracias !!
  #4 (permalink)  
Antiguo 08/04/2011, 03:31
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Invertir cola en java

Creo que no lo e acabado de entender :

Código PHP:
    public void inversa(){
        
        
Cola cola2 = new Cola();
    
        while (!
esbuida()){
        
cola2.inserta(primer());
        
elimina();
    }
    
cola=cola2;
    
System.out.println("Cola Invertida: " cola);

    } 
Iria la cosa por aqui ? Con esto consigo que me imprima la cola pero original ...
No me la invierte
  #5 (permalink)  
Antiguo 08/04/2011, 05:45
Avatar de Heimish2000  
Fecha de Ingreso: enero-2011
Ubicación: Madrid
Mensajes: 844
Antigüedad: 13 años, 5 meses
Puntos: 89
Respuesta: Invertir cola en java

Veo que no leiste mi post...

Donde tienes que ir apilando el primer elemento es en una PILA, no en una cola auxiliar, y luego hacer la operación inversa (pasar de la PILA a la cola)
  #6 (permalink)  
Antiguo 09/04/2011, 09:01
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Invertir cola en java

Hola Heimish2000 . Mira e llegado asta este punto , pero no me acaba de imprimir la cola inversa . Me podrias ayudar? Voi muy perdido...

Código PHP:
import java.util.*;

public class 
Cola extends LinkedList {

    
//CREAMOS UN LINKEDLIST LLAMADO PILA 
    
static LinkedList cola = new LinkedList();
    
    public 
void inicia()
    {
        
clear();
    }

    public 
void inserta(Object o)
    {
        
addLast(o);
    }

    public 
Object elimina()
    {
        if (
esbuida()) return null;
        return 
removeFirst();
    }

    public 
Object primer()
    {
        return 
peekFirst();
    }

    public 
boolean esbuida()
    {
        return (
size()==0);
    }
    
    public 
Object ultim()
    {
        return 
peekLast();
    }
    
    public 
Object elimina_ultim()
    {
        if (
esbuida()) return null;
        return 
removeLast();
    }
      
        
    public 
void inversa(){
        
Cola cuaaux=new Cola();
           
            while(!
esbuida()){
                
cuaaux.add(ultim());
                
elimina_ultim();               
                           
            }
           
            while(!
cuaaux.esbuida()){
                
add(cuaaux.primer());
                
cuaaux.elimina();               
                           
            }
            
cola=cuaaux;
            
System.out.println("Cola Invertida: " cola);               
    }
    
    public static 
void main(String[] args)
        {
        
Cola cola = new Cola();
        
Cola cuaaux = new Cola();
        
        
//CREAMOS PILA
        
String elemento1="I";
        
String elemento2="V";
        
String elemento3="A";
        
String elemento4="N";
        
//
        
cola.inserta(elemento1);
        
cola.inserta(elemento2);
        
cola.inserta(elemento3);
        
cola.inserta(elemento4);
        
//IMPRIMIMOS COLA ORIGINAL
        
System.out.println("Cola Original: "+cola);
        
        
cola.inversa();
        
        
        
        
    } 
//FIN MAIN

    
}//FIN DE LA CALSE 
  #7 (permalink)  
Antiguo 09/04/2011, 09:48
 
Fecha de Ingreso: abril-2011
Ubicación: barcelona
Mensajes: 15
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: Invertir cola en java

Solucionadoo!

Etiquetas: cola, invertir
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:18.