problemas na funçãoda pilha trocar o topo pela base e vice versa. [RESOLVIDO]

13. Re: problemas na funçãoda pilha trocar o topo pela base e vice versa. [RESOLVIDO]

Marco Brainiac
mbrainiac

(usa Debian)

Enviado em 17/03/2016 - 23:22h

Resolvido

Um pouco de boa vontade pessoal, nem todo mundo domina e o propósito do fórum é a ajuda mútua!

Nem ler o que pedi fizeram...




void trocatopobase(struct x *pilha){// função troca base topo
int aux1, aux2, i;
aux1 = pilha ->itens[pilha->topo-1];
aux2 = pilha ->itens[pilha->topo-4];

printf("topo = %3d \n", pilha ->itens[pilha->topo -1]);

printf("aux1 = %3d\n", aux1);
printf("aux2 = %3d\n", aux2);

printf("\nItens sem trocar\n");
for(i=0; i<= 3; i++)
printf("%3d\n", pilha ->itens[pilha->topo - i-1]);

printf("\n\nTrocando Topo com Base\n");
pilha ->itens[pilha->topo-1] = aux2;
pilha ->itens[pilha->topo-4] = aux1;

for(i=0; i<= 3; i++)
printf("%3d\n", pilha ->itens[pilha->topo - i-1]);


}


saída:
mbrainiac@hotpc:~/Área de trabalho/C_programas/Estruturas$ ./aula4tr1a.x

<<< PROGRAMA PILHA >>


0: Sair

1: Inserir itens

2: Remover itens

3: Imprimir tamanho

4: Imprimir item topo

Entre com a opcao desejada:
0
Quer continuar a alterar pilha?
Digite 's' para Sim
Ou tecle qualquer tecla para sair:
u
topo = 3
aux1 = 3
aux2 = 1

Itens sem trocar
3
9
5
1


Trocando Topo com Base
1
9
5
3
mbrainiac@hotpc:~/Área de trabalho/C_programas/Estruturas$


  


14. Re: problemas na funçãoda pilha trocar o topo pela base e vice versa. [RESOLVIDO]

Lucas Ferreira dos santos
lksmodos

(usa Ubuntu)

Enviado em 18/03/2016 - 09:54h

mbrainiac escreveu:

Resolvido

Um pouco de boa vontade pessoal, nem todo mundo domina e o propósito do fórum é a ajuda mútua!

Nem ler o que pedi fizeram...




void trocatopobase(struct x *pilha){// função troca base topo
int aux1, aux2, i;
aux1 = pilha ->itens[pilha->topo-1];
aux2 = pilha ->itens[pilha->topo-4];

printf("topo = %3d \n", pilha ->itens[pilha->topo -1]);

printf("aux1 = %3d\n", aux1);
printf("aux2 = %3d\n", aux2);

printf("\nItens sem trocar\n");
for(i=0; i<= 3; i++)
printf("%3d\n", pilha ->itens[pilha->topo - i-1]);

printf("\n\nTrocando Topo com Base\n");
pilha ->itens[pilha->topo-1] = aux2;
pilha ->itens[pilha->topo-4] = aux1;

for(i=0; i<= 3; i++)
printf("%3d\n", pilha ->itens[pilha->topo - i-1]);


}


saída:
mbrainiac@hotpc:~/Área de trabalho/C_programas/Estruturas$ ./aula4tr1a.x

<<< PROGRAMA PILHA >>


0: Sair

1: Inserir itens

2: Remover itens

3: Imprimir tamanho

4: Imprimir item topo

Entre com a opcao desejada:
0
Quer continuar a alterar pilha?
Digite 's' para Sim
Ou tecle qualquer tecla para sair:
u
topo = 3
aux1 = 3
aux2 = 1

Itens sem trocar
3
9
5
1


Trocando Topo com Base
1
9
5
3
mbrainiac@hotpc:~/Área de trabalho/C_programas/Estruturas$


Você tem as funções empilha e desempilha prontas .......não há necessidade de mexer nas posições diretas da pilha , e só uma brincadeira de empilha e desempilha ....mas enfim se acho mais viável desse jeito.



15. Re: problemas na funçãoda pilha trocar o topo pela base e vice versa. [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 19/03/2016 - 12:14h

Pilhas puras só possuem operações de empilhar e desempilhar, o que significa que só se pode mexer no topo. Assim sendo, a única maneira de chegar até a base é desempilhar tudo o que está em cima dessa base.

Se você tem acesso a outros elementos, então você está trabalhando com vetores ou listas, não com pilhas.

E, sim, eu vi desde o começo que sua “pilha” era implementada usando um vetor. Se você tivesse dito que queria trocar dois elementos do vetor, as respostas -- tanto minha quanto dos demais --teriam sido outras. Você insistiu em perguntar sobre pilhas, e recebeu respostas a respeito de pilhas, como é natural.

Você poderia tomar este tópico como lição. Se você quiser que o computador faça o que você deseja que ele faça, tem de saber expressar seus desejos em termos exatos; se os expressar em termos errados, vai receber resultados correspondentes ao que tiver expressado, não ao que você gostaria que tivesse sido entendido.

(Aliás, num tribunal é a mesma coisa. Tudo o que você disser pode ser -- e será -- usado contra você.)



01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts