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

Fila E Pilha


Guest Mion

Pergunta

Por favor estou tendo muita dificuldade em uma matéria ( Estrutura de Dados), preciso fazer uma atividade em que o usuario vai digitar uma mensagem eu tenho que de alguma maneira ler a mensagem invertela usando estruturas pilhas ou listas, e tudo isso em alocação dinamica!!

putz, to tendo o maior trabalho e não estou conseguindo quem puder me ajudar agradeço...

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

fera...

nesse caso é melhor você usar uma estrutura de pilha...

no caso fikaria assim

typedef struct no{
             char dado;
             struct no *prox;
            } *def_pilha;

acima segue a estrutura para o caso...

depois disso você le a frase...

aloca ela caracter por caracter em sua pilha...

depois é só desalocá-la e ir imprimindo cada caracter desalocado...

é bem simples... depois que você pegar a ideia fica mole mole...

abraços

Link para o comentário
Compartilhar em outros sites

  • 0

amigo....

achei que não entenderia a explicação....

portanto resolvi implementar tal exercicio pedido por você...utilizando alocação dinamica em pilhas....

segue o condigo abaixo....

OBS: fiz em Dev-C++

#include <stdio.h>
#include <malloc.h>

typedef struct no{
        char dado;
        struct no *prox;
        } *def_pilha;

void inicializa(def_pilha *pilha){
     (*pilha) = NULL;
}
int vazia (def_pilha *pilha){
    return ((*pilha) == NULL);
}

int aloca(def_pilha *pilha, char d){
    def_pilha que = (def_pilha) malloc(sizeof(struct no));
    if (que != NULL){
       que->dado = d;
       que->prox = (*pilha);
       (*pilha) = que;
       return 1;
    } else {
      return 0;
    }
}

int destroi(def_pilha *pilha, char *d){
    def_pilha que = (*pilha);
    if (!vazia(pilha)){
          (*pilha) = que->prox;
          (*d) = que->dado;
          free(que);
          return 1;
    } else {
           return 0;
    }
}



int main(){
      int x, dim;
      char dad, frase[50];
      def_pilha pil;
      inicializa(&pil);
      system ("CLS");
      printf("\nDigite uma frase para leitura : ");
      gets (frase);
      dim = strlen(frase);
      for (x = 0; x < dim; x++){
          aloca(&pil,frase[x]);
      }
      system ("CLS");
      while (!vazia(&pil)){
          destroi(&pil,&dad);
          printf("%c",dad);
      }
      printf("\n\n\n");
      system("PAUSE");
      return 0;
}

bom o codigo esta ai... mais procure estudar e desenvolver suas proprias rotinas se deseja ser um bom programador....

eu só disse isso pro seu bem hein hehehe não me leve a mal... ;)

abraços :D

Link para o comentário
Compartilhar em outros sites

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...