Ir para conteúdo
Fórum Script Brasil
  • 0

Crie um 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.


guilhermegoulart

Pergunta

preciso de ajuda para resolver o problema do titulo do tópico

fiz o algoritmo porem não consigo faze-lo executar, acredito que não estou colocando o bloco de codigo no lugar certo:

 

//Bibliotecas
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>

//Constantes
#define tamanho 5

//Estrutura da Pilha
struct tpilha {
  int dados[tamanho];
  int ini;
  int fim;   
};

//Vari?veis globais
tpilha pilha;
int op;

//Protipa??o
void pilha_entrar();
void pilha_sair();
void pilha_mostrar();
void menu_mostrar();

//Fun??o principal
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);
}

//Adicionar um elemento no final da Pilha
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++;  
  }  
}

//Retirar o ?ltimo elemento da Pilha
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--;
  }  
}

//Mostrar o conte?do da Pilha
void pilha_mostrar() {
  int i;   
  printf("[  ");         
  for (i = 0; i < tamanho; i++) {
    printf("%d  ", pilha.dados);          
  }
  printf("]\n\n");         
}

//Mostrar o menu de op??es
void menu_mostrar() {
  printf("\nEscolha uma op??o:\n");        
  printf("1 - Empilhar\n");            
  printf("2 - Desempilhar\n");            
  printf("0 - Sair\n\n");           
}

 

 

eu sei que tenho que inserir o seguinte codigo em algum lugar, mas não consigo entender aonde, peço ajuda pra poder entender o funcionamento da função, e se estiver faltando alguma coisa, me mostrem pra eu entender a logica.

 

function inverter(*fila, *pilha){

while(fila_vazia(fila)!=0){

empilhar(pilha,desenfileirar(fila)); }

while(pilha_vazia(pilha)!=0){

enfileirar(fila,desempilhar(pilha));

}

}

 

 

agradeço desde já a ajuda.

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...