Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

RafusMaster

[Resolvido]  Básica - Simples Exercicio

Recommended Posts

Olá a todos, neste código devo criar uma função TROCAR, onde seja exibido na tela a pilha com o TOPO no lugar da BASE e a BASE no lugar do TOPO.

 

Até então consegui fazer isso:

 

#include<stdio.h>

#include<conio.h>

# define MAX 5

 

int pilha[MAX];

int topo = -1;

void inserir (int valor){

topo++;

if(topo>=MAX){

printf("Pilha cheia\n");

getch();

topo--;

return;

}

 

pilha[topo] = valor;

printf("Armazenado: %d\n",valor);

 

}

 

 

int remover(void){

 

if(topo<0){

printf("pilha vazia\n");

getch();

return 0;

}

topo--;

return pilha[topo+1];

}

 

 

 

int main (void)

{

int x[MAX];

inserir (3);

inserir (2);

inserir (4);

inserir (8);

inserir (9);

printf("%d\n",remover());

printf("%d\n",remover());

printf("%d\n",remover());

printf("%d\n",remover());

printf("%d\n",remover());

getch();

}

Visualmente ficaria assim:

PILHA NORMAL

 

3

2

4

8

9

 

PILHA TROCADA PELA FUNÇÂO

 

9

2

4

8

3

 

Por favor, quem puder me ajudar estarei muito grato.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara vo ser sincero q num entendi muito, + na parte de trocar você pode fazer isso usando uma variável auxiliar.

aux = pilha[0];
pilha[0] = pilha[4];
pilha[4] = aux;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se quiser uma função um pouco mais genérica, faça:

 

void troca(void){
   if(topo>0){
	  aux = pilha[0];
	  pilha[0] = pilha[topo];
	  pilha[topo] = aux;
   }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

é cara realmente oq o Kandrade posto atende oq você pediw, testa e veja c consegue..

 

obs: escrevi pilha[4] pq c tiver somente 5 posições começando do 0, tanto faz um pilha[4] ow um pilha[topo]. =D

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

A idéia é essa mesmo que voce postou.

Usar uma variável auxiliar para não perder o valor de um dos dois extremos da pilha.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif

 

 

é cara realmente oq o Kandrade posto atende oq você pediw, testa e veja c consegue..

 

obs: escrevi pilha[4] pq c tiver somente 5 posições começando do 0, tanto faz um pilha[4] ow um pilha[topo]. =D

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.