Ajuda com o método Excluir() de uma Fila!

2 respostas
F

[color=darkred]Pessoal, estou com problemas em um trabalho aqui.
Preciso cria um método que exclua um determinado item da fila.
O código que eu tenho é o seguinte.[/color]

import javax.swing.JOptionPane;

class Filas {	
    private int tamanho;
    private String[] fila;
    private int qtde;
 
    
    public Filas(int x){
    	tamanho = x;
    	fila = new String[tamanho];
    	qtde = -1;    	
    }
	
	public void push(){
   		if(qtde == tamanho-1){
     		JOptionPane.showMessageDialog(null,"Fila cheia...");
     		return;
   		}
   		qtde++;
   		fila[qtde] = JOptionPane.showInputDialog("Entre com o nome: ");
   		printall();
	}
        
         
	public void printall(){
        if(qtde == -1)    
     		JOptionPane.showMessageDialog(null,"Fila vazia...");
        else{
            String str = "Fila atual:\n";
            String [] fila_aux = new String[tamanho]; //nao pode ser qtde+1 por causa de fila=fila_aux

            //Transfere para fila auxiliar
            for(int i=0;i<=qtde;i++){
     		   str += fila[i] + "\n";
     		   fila_aux[i]=fila[i];
     		   fila[i]=null;  //apaga conteúdo
            }
            
            fila = fila_aux;
     		   
     		JOptionPane.showMessageDialog(null,str);   
    }
  }
}

class J_Exerc1 {
 	
 	public static void main(String args[])  {
 	
    	Filas aFila = new Filas(4);
		int menu = 0;
                menu  = Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n" + "1- Inserir" + "\n2- Excluir" + "\n3- Imprimir"));
                
                switch (menu) {
                    case 1: aFila.push();
                    case 2: aFila.printall();
                       
      }            
   }
}

[color=darkred]Li alguns tópicos, mas sou iniciante em java, e não consegui achar um lógica plausível para me ajudar.
Se puderem eu ficaria agradecido.
Obrigado![/color]

2 Respostas

cido18

olá FreyBonan,

Cara existe uma API para fila, o nome é Queue, não sei se você precisa implementa na mão, mas essa fica mais fácil.

M

Veja se esse exemplo pode esclarecer

public static void main(String[] args) {
		
		int qt = 3; // qt de elementos na fila
		String[] fila = {"a","b","c", null};
		
		//push
		fila[qt] = "d";
		qt++;
		
		//pop
		String pop = fila[qt-1];
		fila[qt-1] = null;
		qt--;
		
		System.out.println(pop);
	}

Não é uma implementação completa, e ainda falta as validações( push com a pilha cheia e pop com ela vazia etc.)

Criado 3 de outubro de 2012
Ultima resposta 3 de out. de 2012
Respostas 2
Participantes 3