Pages

sexta-feira, 16 de maio de 2025

Para testar sua implementação, você pode criar um pequeno programa C que usa sua pilha para realizar essa tarefa. Por exemplo, você pode criar um programa que lê uma palavra do usuário e, em seguida, usa uma pilha

MAPA - ESOFT - ESTRUTURA DE DADOS I - 52_2025

Precisando de assessoria nos seus TRABALHOS entre em contato com a 2M ASSESSORIA

Canal do Instagram: https://www.instagram.com/equipe2massessoria

CONTATO: WHATS::: (15) 98115-0680

   Link direto para WhatsApp




Olá, estudante! Chegou o momento de explorar de forma PRÁTICA os conteúdos aprendidos na nossa disciplina. Vamos lá? Inicie realizando a leitura do seguinte texto:

Para testar sua implementação, você pode criar um pequeno programa C que usa sua pilha para realizar essa tarefa. Por exemplo, você pode criar um programa que lê uma palavra do usuário e, em seguida, usa uma pilha para inverter a ordem das letras na palavra e imprimir a palavra resultante. Para isso iniciou o seguinte código C que usa uma pilha para inverter a ordem das letras em uma palavra:


#include <stdio.h>
#include <string.h>

#define MAX_SIZE 100

struct Pilha {
    char itens[MAX_SIZE];
    int topo;
};

void inicializar(struct Pilha *p) {
    p->topo = -1;
}

int vazia(struct Pilha *p) {
    return p->topo == -1;
}

void push(struct Pilha *p, char item) {
     ...
}

char pop(struct Pilha *p) {
      ...
}

char topo(struct Pilha *p) {
     ...
}

void limpar(struct Pilha *p) {
     ...
}

int main() {
    struct Pilha p;
    inicializar(&p);

    while (1) {
        printf("\nDigite 1 para adicionar uma palavra à pilha\n");
        printf("Digite 2 para desempilhar a palavra\n");
        printf("Digite 3 para limpar a pilha\n");
        printf("Digite 4 para exibir o topo da pilha\n");
        printf("Digite 0 para sair\n");

        int opcao;
        printf("\nEscolha uma opção: ");
        scanf("%d", &opcao);

        switch (opcao) {
            case 1: {
                char palavra[MAX_SIZE];
                printf("\nDigite a palavra a ser adicionada: ");
                scanf("%s", palavra);
                for (int i = 0; i < strlen(palavra); i++) {
                    push(&p, palavra[i]);
                }
                printf("\nPalavra '%s' adicionada à pilha.\n", palavra);
                break;
            }
            case 2: {
                char palavra[MAX_SIZE];
                int indice = 0;
                while (!vazia(&p)) {
                    palavra[indice++] = pop(&p);
                }
                palavra[indice] = '\0';
                if (indice>0) {
                    printf("\nPalavra desempilhada: '%s'\n", palavra);
                } else {
                    printf("\nPilha vazia. Nenhum elemento para mostrar.\n");
                }
                break;
            }
            case 3: {
                limpar(&p);
                printf("\nPilha limpa.\n");
                break;
            }
            case 4: {
                char top = topo(&p);
                if (top == '\0') {
                    printf("\nPilha vazia. Nenhum elemento para mostrar.\n");
                } else {
                    printf("\nElemento no topo da pilha: %c\n", top);
                }
                break;
            }
            case 0: {
                return 0;
            }
            default: {
                printf("\nOpção inválida. Digite 1, 2, 3, 4 ou 0.\n");
            }
        }
    }

    return 0;
}


Neste código, a classe Pilha é definida com os mesmos métodos básicos da primeira implementação. A função inverte palavra recebe uma palavra e usa uma pilha para inverter a ordem das letras na palavra. Para cada letra na palavra, ela é adicionada à pilha. Em seguida, as letras são removidas da pilha uma a uma e adicionadas à palavra resultante.

Para esta atividade MAPA, complete o código com as funcionalidades para empilhar (push), desempilhar (pop), limpar a pilha (limpar) e exibir o topo da pilha (topo).





Canal do Youtube: 
https://www.youtube.com/@EQUIPE2MASSESSORIAACAD%C3%8AMICA


Solicite um orçamento com a nossa equipe




Precisando de assessoria nos seus TRABALHOS entre em contato com a 2M ASSESSORIA

E-mail:  assessoria.academica2m@gmail.com

Facebook: fb.me/ajudaemTrabalhosdeprogramacao

Whats: (15) 98115-0680 

   Link direto para WhatsApp

Canal do Instagram: https://www.instagram.com/equipe2massessoria





Nenhum comentário:

Postar um comentário