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
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).
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
Canal do Instagram: https://www.instagram.com/equipe2massessoria
0 comentários:
Postar um comentário