Pilha e Fila

1. Pilha e Fila

Luana
LuanaPio

(usa Ubuntu)

Enviado em 11/05/2016 - 22:46h

Galera. To com uma duvida em Java.
Minha fila tem numeros, letras e outros caracteres: |2|3|a|c|5|&|*|+|)|1|1|4|f|7|h|4|v|8|
Eu gostaria de colocar SOMENTE OS NUMEROS numa pilha. Como eu faço isso ?

Pensei em usar o try catch, mas so ta pegando o fim da fila.
(Ja tenho as classes de pilha e fila prontas)
Obrigado.


  


2. Re: Pilha e Fila

Kaique Souza
KqTrace

(usa Linux Mint)

Enviado em 24/05/2016 - 19:41h

Luana, de que forma você está inserindo esses dados na Fila? Manualmente ou estão sendo gerados por algum outro método randomicamente? E que tipo de exceção você está usando para ser capturada?


3. Re: Pilha e Fila

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/05/2016 - 21:42h

Melhor mostrar o código.

----------------------------------------------------------------------------------------------------------------
# apt-get purge systemd (não é prá digitar isso!)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



4. Re: Pilha e Fila

Gabriel Silva
Dvik

(usa Sabayon)

Enviado em 24/05/2016 - 23:05h

Bom é complicado responder sem o código, se você for iniciante de tudo é capaz da minha resposta nem surtir efeito, crie um ponteiro para percorrer a pilha/fila lendo todos os caracteres basicamente um do-while, em seguida passe os caracteres de string para int, double, ou float, e coloque a restrição (if) de int, float, double, o que você estiver usando para numero. É o que posso lhe adiantar, e como é no java creio que você nem necessite criar ponteiro, da pra usar o da função se nao me engano.


5. Re: Pilha e Fila

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/05/2016 - 01:58h

Se você tem realmente uma fila, deve saber que só há um jeito de colocar e um jeito de tirar elementos da fila, que são, respectivamente, colocar o elemento no final e tirar o elemento do início. Tudo o que vem no meio é (ou deveria ser) inacessível para o usuário do objeto da classe fila.

A pilha, por outro lado, só permite trabalhar em uma das extremidades. A analogia com uma pilha de pratos é excelente. Cada novo elemento colocado na pilha fica em cima do anterior e impede o acesso direto a ele. E se eu quiser tirar um elemento, o elemento a ser tirado será o que estiver no topo da pilha.

Internamente, tanto filas quanto pilhas podem ser implementadas tanto como arrays quanto como listas. Arrays permitem acesso direto a qualquer elemento, e listas permitem buscas sequenciais de valores específicos, com inclusões e exclusões em qualquer posição intermediária. No entanto, independentemente do método usado internamente para implementação, quando de fala de fila, a quantidade de operações é restrita para garantir somente operações FIFO (first in, first out, o primeiro a entrar é o primeiro a sair). Logo uma classe que implementa pilha precisa de apenas dois métodos: um para colocar mais um elemento no final, e outro para tirar um elemento do início (um terceiro método, opcional, e que não viola a propriedade FIFO, é um que sirva para informar o tamanho atual da fila). Por sua vez, uma pilha só tem de entregar operações LIFO (last in, first out, o último a entrar é o primeiro a sair). Consequentemente, a pilha so precisa de dois métodos: um para acrescentar elemento um no topo, e outro para tirar o elemento que estiver no topo (com um terceiro método, opcional, para dizer a altura da pilha).

Sendo assim, se você quer varrer os elementos de uma fila previamente montada, para então selecionar alguns, a única abordagem possível será tirar cada um dos elementos da frente da fila e examinar seu valor, e depois, se quiser, colocá-los em outra fila (ou até na mesma, se sua classe tiver o método de contagem de elementos e se você tomar os devidos cuidados).


6. Re: Pilha e Fila

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/05/2016 - 13:18h

Dvik escreveu:

Bom é complicado responder sem o código, se você for iniciante de tudo é capaz da minha resposta nem surtir efeito, crie um ponteiro para percorrer a pilha/fila


Para percorrer fila ou pilha, só se você puder abrir a implementação interna, e se ela se revelar uma lista ou um array. Pilhas tradicionais só permitem acesso a um elemento de cada vez, e estes têm de ser retirados da pilha para acesso ao próximo elemento. Com filas também é assim pois, apesar de ela ter duas pontas, apenas uma permite a retirada de elementos, e a outra só permite inserções.

lendo todos os caracteres basicamente um do-while, em seguida passe os caracteres de string para int, double, ou float,


Pela descrição dela, não parece que a fila e/ou lista usem Strings, mas sim chars. Se de fato forem caracteres, não precisa haver conversões, e os algarismos podem ser identificados com o método Character.isDigit().

e coloque a restrição (if) de int, float, double, o que você estiver usando para numero. É o que posso lhe adiantar, e como é no java creio que você nem necessite criar ponteiro, da pra usar o da função se nao me engano.


Aí, sim, seria necessário saber que tipos ela está usando para fila e pilha. As classes Queue e Stack de java.util tem um método iterator(), que permitem percorrer os elementos intermediários das listas ou arrays usados internamente por essas classes. Mas uma implementação “pura” de fila ou pilha não é obrigada a oferecer tais formas de acesso.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts