Questão
ID 1444468Disciplina: Tecnologia da Informação
Assunto: Pilhas
Ano: 2024 Banca: Instituto Verbena Órgão: Prefeitura Municipal de Rio Branco
Estruturas de Dados são formas de organizar sistematicamente os dados em um programa definindo as operações que podem ser utilizadas para manipular os dados naquela estrutura. As estruturas básicas são diferentes entre si, em geral, na forma de inserir, retirar e organizar os dados internamente. Neste sentido, analise o seguinte código de uma estrutura de dados escrita na linguagem C.
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // Tamanho máximo da estrutura
// Definindo a estrutura
typedef struct {
int items[MAX_SIZE];
int inicio; // Índice do inicio da estrutura
} Estrutura;
// Função para inicializar a estrutura
void initializeEstrutura(Estrutura *estrutura) {
estrutura->inicio = -1;
}
// Função para verificar se a estrutura está vazia
int isEmpty(Estrutura *estrutura) {
return estrutura->inicio == -1;
}
// Função para verificar se a estrutura está cheia
int isFull(Estrutura *estrutura) {
return estrutura->inicio == MAX_SIZE - 1;
}
// Função para inserir um elemento na estrutura
void insert(Estrutura *estrutura, int value) {
if (isFull(estrutura)) { // Verifica se a estrutura está cheia
printf("Erro: Estrutura cheia!\n");
return;
}
estrutura->items[++estrutura->inicio] = value;
}
// Função para remover um elemento da estrutura
int extract(Estrutura *estrutura) {
if (isEmpty(estrutura)) { // Verifica se a estrutura está vazia
printf("Erro: Estrutura vazia!\n");
exit(1);
}
return estrutura->items[estrutura->inicio--];
}
// Função para visualizar o elemento no inicio da estrutura sem
removê-lo
int peek(Estrutura *estrutura) {
if (isEmpty(estrutura)) { // Verifica se a estrutura está vazia
printf("Erro: Estrutura vazia!\n");
exit(1);
}
return estrutura->items[estrutura->inicio];
}
int main() {
Estrutura estrutura;
initializeEstrutura(&estrutura); // Inicializa a estrutura
// Testando as operações da estrutura
insert(&estrutura, 10);
insert(&estrutura, 20);
insert(&estrutura, 30);
printf("Elemento no inicio da estrutura: %d\n",
peek(&estrutura));
printf("Removendo: %d\n", extract(&estrutura));
printf("Removendo: %d\n", extract(&estrutura));
printf("Removendo: %d\n", extract(&estrutura));
printf("A estrutura está vazia? %s\n", isEmpty(&estrutura) ?
"Sim" : "Não");
return 0;
}
O código apresentado é condizente com a estrutura de dados: