[RESOLVIDO] Tipo de dados abstrato(pilha fila lista)

Queria a ajuda de vcs para fazer o metodo cresce() de uma fila.
O esta metodo faz.
Ao enfileirar um elemento eu olho o tamanho da fila.
Se a fila estiver cheia crio uma nova fila com o dobro da anterior, passo todos os elementos para a nova fila e continuo trabalhando com os elementos.
public void cresce()
{

}
Não consegui fazer funcionar, por isso pesso ajuda.

A miha esta deste jeito:
public void cresce()
{
int novotamanho = armazem.length * 2;
int novo[] = new int[novotamanho];

     for(int i=0;i<armazem.length;i++)
     {
        novo[i] = armazem[i];	
     }//fim for(int i=0;i<old.length;i++)
     
     armazem = novo;
     
  }//fim metodo cresce()

Olá! Seja bem-vindo ao GUJ.

Antes de tudo, dê uma lida nesse artigo que vai te ensinar a maneira correta de postar código, além de outros recursos do fórum.

Não entendi exatamente qual o seu problema. Seu método me parece correto. Eu só trocaria a cópia manual do array pelo método System.arrayCopy.

[code]
public void cresce() {
int novotamanho = armazem.length * 2;
int novo[] = new int[novotamanho];

System.arrayCopy(armazem, 0, novo, 0, novo.length);
armazem = novo;
}//fim metodo cresce() [/code]

Valeu pela ajuda do artigo.
Vou le-lo com mais calma.

Tenho que fazer uma Fila que será implementada por uma fila de prioridade maxima, ou seja nessa implementação terei que colocar o metodo que retorna neste meu caso o maior elemento. (Isso ja esta OK).

O “problema é o seguinte”.

ERRA PROBLEMA.

Consegui achar o erro.
Tinha em uma mesma pasta duas classes.

  • Uma Fila.java e outra FiladePrioridade.java

Em um certo metodo meu ele estava fazendo referenia a Fila.java e não a de Prioridade, por isso que a resposta dava errado.

Valeu a ajuda.

Tenho agora um novo problema.

Tenho que fazer um programa em java que seria como um interpretador, ou seja, pego um programa em txt leio e tenho que executar os comando la pedidos.

Tem ideia de como posso tratar os eventuais erros como por exemplo:
metodo recursivo, ou if dentro de if, operações na ordem correta * e / — + e -.
Qual seria a melhor estrutura de usar?
Vetor + pilha – Pilha + Fila – Fila + Lista
Vetor + Fila – Pilha + Lista
Vetor + Lista
Não necessariamente precisa ser toda em fila ou lista ou fila, mas tenho que usar uma destas em algum metodo.

Este programa é o mesmo caso de um controlador de voo.

Olhe o programa txt abaixo…

[quote]
funcao f1 r1
var i2
i2 = 3
r1 = i2 * 24 + 35
r1 = r1 / 2
oacnuf

funcao f2 r1 r2 r3
r1 = r2 * r3 / 2
oacnuf

inicio
var i1 r1 r2 R1

ler i1
r1 = 3.14

se i1 == 0
r1 = f1
es

r2 = 1
repetir i1 < 10
var i2
i2 = 9876
r2 = f2 r1 r2
riteper

escrever r2
fim

Se vai fazer um interpretador, use o antlr.

Existe um editor de textos que usa o antlr para fazer syntax coloring implementado aqui:
http://www.guj.com.br/posts/list/48736.java

Valeu, vou olhar este interpretador ou como faze-lo.
Como eu faço em java o enfileirar e o desenfileirar com referencia.

Olha o meu como esta:

       public int desenfileirar() {
      
         if (estaVazia())
            throw new RuntimeException(" Impossivel retirar elemento: FILA VAZIA ");
      
         int resultado = inicio.valor;
         inicio = inicio.prox;
      
         if (inicio == null)
            fim = null;
      
         return resultado;
      
      }// fim desenfileirar
       public void enfileirar(int valor) {
       
         Celula nc = new Celula (valor);//chama o cosntrutor e passa o valor para a celula
                                        // nc =  nova celula
         Celula aux = nc;//guarda a celula "original"
         
         if (inicio == null)
            fim = inicio = nc;
         else{
            inicio = aux;      
            fim = nc;
            size++;
         }//fim if
      }//fim enfileirar

Agradeço a sua colaboração…
Com relação a ultima postagem, podem deixar.
Consegui resolver, valeu

O que eu preciso importar para o System.arrayCopy() funcionar no me programa.

Gostaria de saber como faço a uniao entre duas Listas com referencia criadas em java . O problema é que as duas primeiras podem ter numeros iguais, mas a uniao entre elas não…

Como resolvo este problema?

Você escreveu as listas, ou está usando a classe LinkedList do próprio Java?

Se for a LinkedList, basta fazer:

[code]
//Remove todos os elementos na list2 que estão presentes na list1.
list2.removeAll(list1);

//Adiciona os remanecentes na list1.
list1.addAll(list2);[/code]