Jump to content
amvm

PILHAS - manipulação

Recommended Posts

amvm

Boas.

Tenho uma pilha e quero retirar os tres primeiros elementos e colocar em 3 pilhas diferentes. O problema é que so me ocorre fazer 3 metodos (iguais) para resolver o assunto. No entanto nao me parece bem. Meu problema é que também queria retornar essas 3 pilhas daí escolher fazer os tres metodos. :wallbash:

Alguem tem algo melhor?

cumps

Share this post


Link to post
Share on other sites
M6

Não sei se compreendo bem a tua dúvida, mas aqui vai.

Para manipulares uma pilha necessitas apenas de dois métodos: push e pop.

O push mete um elemento na pilha e o pop remove o elemento da pilha.

Quando fazes pop de uma pilha, fazes o push desse elemento nas outras pilhas.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
amvm

O meu problema nao é manipular, é encontrar uma boa solução para fazer o que quero.

Eu tenho uma dada pilha, e quero dessa pilha retirar 3 elementos e colocar cada um deles em outras 3 novas pilhas... e quero retornar essas 3 pilhas.

a unica maneira q me ta a ocorrer e criar tres metodos q irao retornar essas novas 3 pilhas. queria era saber se havera uma maneira melhor.

cumps

Share this post


Link to post
Share on other sites
M6

Podes ter apenas um método que te devolve todas as pilhas.

Basta que para tal as encapsules num objecto que esse método retorna. Por exemplo, uma lista de pilhas.


10 REM Generation 48K!
20 INPUT "URL:", A$
30 IF A$(1 TO 4) = "HTTP" THEN PRINT "400 Bad Request": GOTO 50
40 PRINT "404 Not Found"
50 PRINT "./M6 @ Portugal a Programar."

 

Share this post


Link to post
Share on other sites
Anusko

Não fazendo grande sentido a maneira como descreves o problema...

Stack[] doit(Stack s) {
Stack[] result = new Stack[] { new Stack(), new Stack(), new Stack() };
for (int i = 0; i < 3; i++) {
	Object obj = s.pop();
	for (int j = 0; j < 3; j++) {
		result[j].push(obj);
	}
}
return result;
}

Share this post


Link to post
Share on other sites
amvm

Anusko obrigada pela solução.

Eu acabei por fazer +/- assim, mas tipo com o dobro do código. xD

Muito obrigada á mesma :)

Cumprimentos.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.