Jump to content
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
 Share

Question

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 to comment
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share



  • Forum Statistics

    • Total Topics
      149.9k
    • Total Posts
      646.8k
×
×
  • Create New...