MAPA
- ESOFT - ESTRUTURA DE DADOS I - 52_2026
QUESTÃO 1
MV-ASSESSORIA
Consulte a nossa assessoria pelo Número:
Whats(15)98170-8778
Tele gram:(15)98170-8778
Entre em contato com a nossa equipe que vamos assessorar com esse trabalho
Mais de 10 anos no mercado acadêmico
Olá,
estudante! Chegou o momento de explorar de forma PRÁTICA os conteúdos
aprendidos na nossadisciplina. 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 realizaressa tarefa. Por exemplo, você pode criar um programa que lê
uma palavra do usuário e, em seguida, usauma pilha para inverter a ordem das
letras na palavra e imprimir a palavra resultante. Para isso iniciou oseguinte
código C que usa uma pilha para inverter a ordem das letras em uma palavra:
|
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 MAXSIZE ; 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
MAXSIZE
;
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
MAXSIZE
;
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).
AVISOS IMPORTANTES!
-
A atividade deve ser realizada utilizando
linguagem C; outras linguagens de programação, como JAVA,PHP, entre outras, não serão aceitas.
-
Também não serão aceitos arquivos executáveis.-
Envie o código-fonte da atividade em .C.
0 comentários:
Postar um comentário