Ajuda em Fila

5 respostas
A

olá galera, sou novo aqui e peço desculpas antecipadas por não enviar o código abaixo do modo que vejo no outros tópicos. :oops:

preciso de um ajuda nesse código, ex: eu entro com 5 numeros na fila (1,2,3,4,5), o 1 está na posição 0 do array e quando vou retirar o numero 1 e colocar outro na
fila, este novo entra no lugar do 1 e não na posição 4 do array. Como faço para que quando entrar com outro numero, o primeiro saia e os outros vão para as
posições da frente e este que entrou fique no lugar do ultimo?

obrigado

import javax.swing.*;

public class Fila{
  int tamanho;
  int inicio;
  int fim;
  int result ;
  Object vt[];
  
Fila(int size){
     
     result = 0;
     inicio = 0;
     tamanho = size;
     fim = 0;
     vt = new Object[size];
   }  

public boolean FilaCheia( ){
     if (result >= tamanho)
      {
        return true;
      }
     else
      {
        return false;
      }
   } 

public boolean FilaVazia( ){
    if (result  == 0)
     {
       return true;
     }
    else
     {
       return false;
     }
   }
  
public void Enfileirar (Object elemento){
     if (! FilaCheia( ))
      {
    	vt[fim] = elemento;
        fim = fim + 1;
        result  = result  + 1;
        if (fim >= tamanho)
         {
           fim = 0;
         }
      }
     else
      {
        JOptionPane.showMessageDialog(null,"Fila Cheia!");
      }
   }

public Object Desenfileirar (){
  Object desenfileirado = null;
   if (FilaVazia())
   {
	   JOptionPane.showMessageDialog(null,"Fila Vazia!");
   }
  else
   {
     desenfileirado = vt[inicio];
     vt[inicio]=null;
     inicio++;
     result--;
     if (inicio == tamanho)
      {
        inicio = 0;
      }
   }
  return desenfileirado;
}  

public void NumInicial( ){ 
     System.out.println("O Número inicial é:  " + vt[inicio]);
   }

public void MostrarFila( ){
      for (int i = 0 ; i < result  ; i++)
      {
        JOptionPane.showMessageDialog(null,"Número " + vt[i] + " posição " + i);
      } 
   }
}




import javax.swing.JOptionPane;

 public class App
 {
   public static void main (String[]args)
    {
      Fila objFila = new Fila(5);
      Object entrada = null;
      int i;
     int novonum;

    objFila.Desenfileirar( );
      for (i = 0 ; i < 5 ; i++)
       {
         entrada = JOptionPane.showInputDialog("Digite um valor inteiro para posição: "+i);
         objFila.Enfileirar(entrada);
       }
      objFila.Enfileirar(entrada);
      
      objFila.MostrarFila( );
      
      objFila.NumInicial( );
      
      JOptionPane.showMessageDialog(null,"Desenfileirar "+objFila.Desenfileirar( ));
      
      novonum =Integer.parseInt(JOptionPane.showInputDialog("Digite novo número para enfileirar"));
      
      objFila.Enfileirar(+novonum);
      
      objFila.MostrarFila( );
      
      JOptionPane.showMessageDialog(null,"Desenfileirar "+objFila.Desenfileirar( ));
      
      System.exit(0);
    }
 }

5 Respostas

Hebert_Coelho

Olá, Aleqza. Bem vindo ao GUJ.

Para formatar seu código, edit seu post, selecione seu código e aperte o botão Code.

Assim vai ficar mas fácil de te ajudar. [=

A

Valeu…
agora está no padrão… :smiley:

F

Cara, te ajudaria mas te garanto que perderia a graça!! :lol: :lol: :lol: :lol: :lol:

A

pois é fabioEM, eu sei que deve ser muito simples, mas como estou iniciando na linguaguem eu não consegui fazer…

abs

F

blz, então,

public void remove(){
//Salva o objeto que está na frente do array.
Object objetoPrimeiro = array[0];
Depois sai pegando os sucessivos e re-colocando no array mais com uma aposição a menos.
int y=1;
for(int i=1;i< size-1;i++){
  Object o = array[i];
  array[y]=o;
  y++;
}
array[size-1]=new Object();
}

:wink:

Criado 1 de novembro de 2011
Ultima resposta 1 de nov. de 2011
Respostas 5
Participantes 3