Imagem de fundo

Estruturas de Dados são formas de organizar...

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:


A

Lista.


B

Fila.


C

Pilha.


D

Árvore.