Ir ao conteúdo
  • Cadastre-se
Guilherme da Jannifer

Rograma em linguagem c, que remova (ou copie) os valores de uma fila, usando as

Recommended Posts

programa em Linguagem C, que remova (ou copie) os valores de uma fila, usando as regras de saída de uma pilha e os adicione em uma nova estrutura, fiz o algoritmo que cria a pilha, porém estou me batendo pra entender como vou fazer para tirar um valor da pilha e colocá-lo numa fila. segue o algoritmo:

#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#define tamanho 5
struct tpilha {
int dados[tamanho];
int ini;
int fim;   
};
tpilha pilha;
int op;
void pilha_entrar();
void pilha_sair();
void pilha_mostrar();
void menu_mostrar();
int main(){
setlocale(LC_ALL, "Portuguese");    
op = 1;  
pilha.ini = 0;
pilha.fim = 0;
while (op != 0) {
system("cls");  
pilha_mostrar();
menu_mostrar();
scanf("%d", &op);
switch (op) {
case 1:
pilha_entrar();
break;
case 2:
pilha_sair();
break;
}      
}  
return(0);
}
void pilha_entrar(){
if (pilha.fim == tamanho) {
printf("\nA pilha est? cheia, imposs?vel empilhar um novo elemento!\n\n");          
system("pause");      
}   
else {    
printf("\nDigite o valor a ser empilhado: ");        
scanf("%d", &pilha.dados[pilha.fim]);  
pilha.fim++;  
}  
}
void pilha_sair() {
if (pilha.ini == pilha.fim) {
printf("\nA pilha est? vazia, n?o h? nada para desempilhar!\n\n");          
system("pause");      
}          
else {
pilha.dados[pilha.fim-1] = 0;
pilha.fim--;
}  
}
void pilha_mostrar() {
int i;   
  printf("[  ");         
  for (i = 0; i < tamanho; i++) {
    printf("%d  ", pilha.dados);          
  }
  printf("]\n\n");         
}
void menu_mostrar() {
  printf("\nEscolha uma op??o:\n");        
  printf("1 - Empilhar\n");            
  printf("2 - Desempilhar\n");            
  printf("0 - Sair\n\n");           
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Guilherme da Jannifer A pilha tem que ter uma função TOP, que retorna  o elemento do topo.

 

Ai você insere na lista assim:

 

enquanto a pilha não for vazia

  lista.adiciona( pilha.top );

  pilha.removeTopo();

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

@CiroboyBR

11 horas atrás, CiroboyBR disse:

@Guilherme da Jannifer A pilha tem que ter uma função TOP, que retorna  o elemento do topo.

 

Ai você insere na lista assim:

 

enquanto a pilha não for vazia

  lista.adiciona( pilha.top );

  pilha.removeTopo();

 

eu sou novo em programação em C, em qual ponto que eu posso inserir a fila? é necessario fazer a declaração do espaço tambem da fila tambem?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×