Impressao sem remocao na FilaLigada

1 resposta
S

//A INTERFACE

public interface Fila

{
public boolean isEmpty();

public void makeEmpty();

public int size();

//enfileirar insere no fim da fila
public void enqueue(Object x);

//Desenfileirar remove elem no inicio retorne null 
//se estiver vazia
public Object dequeue();

//retorna o elemento do inicio
public Object getInicio();


//Retorna o elemento do fim
public Object getFim();

}

// A IMPLEMENTACAO DA INTERFACE
public class  FilaLigada implements Fila

{

private Nodo inicio;

private Nodo fim;

private int numElem;
public FilaLigada()
{ inicio=fim=null;
   numElem=0;		
}

public boolean isEmpty()
{
	return (inicio==null);
}	
public void makeEmpty()
{inicio=fim=null;
numElem=0;}


public void enqueue(Object x)
{
	if(isEmpty()) 
	inicio=fim=new Nodo(x);
	
	else{   fim.next=new Nodo(x);
		fim=fim.next;			
	    }
	numElem++;	
}


public Object dequeue() 
{
	Object elemRemover=null;
	
   if(isEmpty())
   
   return null;
  
    elemRemover=inicio.elem;
    
    if(inicio==fim)
    inicio=fim=null;
    else
    
   	inicio=inicio.next;
   	numElem--;	   	
   	return elemRemover;
   	  
  	}
   	   
   public int size()
   {return numElem;   	
   	}



public Object getInicio()
{ Object elemInicio=null;
	
   if(isEmpty())
   
   return elemInicio;
   elemInicio=inicio.elem;
   return elemInicio;	   
}

public Object getFim()
{    			
	Object elemInicio=null;
	
   if(isEmpty())
   
   return elemInicio;
   elemInicio=fim.elem;
   return elemInicio;
   
}		
//classe interna


private class  Nodo		
{
	private Object elem;
	private Nodo next;
	
	//construtor
	
	private Nodo(Object x)
	{	elem=x;
		next=null;
	 		   		
	}
	
	private Nodo(Object x,Nodo seguinte)
	{
		elem=x;
		next=seguinte;
	}

}}

A CLASSE TESTE ATRAVES DA GERACAO DE NUMEROS ALEATORIOS

import java.util.Random;

import <a href="http://java.io">java.io</a>.<em>;

import java.util.</em>;

public class TesteFila

{

public static void main (String[] args)
{ final int CAP_TESTE =10;

Fila f = new FilaLigada();

Random gerador = new Random();

System.out.println(" numeros gerados sao: ");

for (int i=0; i < CAP_TESTE; i++)

{

int d = 1 + gerador.nextInt(100);
f.enqueue(new Integer(d));
	 
 	System.out.print(d + "  ");

}
System.out.println();

System.out.print(“numero de elementos na fila :”);
System.out.println(f.size());

System.out.println (" numeros vindos do fila ");

//A MINHA DUVIDA E COMO IMPRIMIR AQUI OS ELEMENTOS DA FILA SEM QUE EU TENHA QUE APAGA-LOS

// PORQUE DEPOIS EU PRETENDO APAGAR CERTOS ELEMENTOS DA FILA E …

//IMPRIMIR O PRIMEIRO ELEMENTO
//IMPRIMIR O ULTIMO ELEMENTO
//ECT… ISTO EU FACO
// O PRINCIPAL E APENAS A SUA VIZUALIZACAO…!!!

ABRACO…!

1 Resposta

H

Implemente um método printQueue, que percorra a fila:

Algo assim:

public void printQueue(){

  if (numElem < 1)
    return;

  System.out.println(inicio.elem);

  Nodo temp = inicio;

  while (temp.next != null){
    temp = temp.next;
    System.out.println(temp.elem);
  }
}



//Na classe TesteFila
...
  System.out.println (" numeros vindos do fila "); 
  f.printQueue();
...

Espero ter ajudado…

Criado 9 de setembro de 2007
Ultima resposta 9 de set. de 2007
Respostas 1
Participantes 2