image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Antonio Santos
Antonio Santos03/09/2024 09:45
Compartilhe

Estrutura de dados em linguagem C

  • #Estrutura de dados

Um computador é uma máquina que realiza a manipulação e o processamento de dados de uma determinada entrada, respondendo a essas operações com uma determinada saída. Tal processamento baseia-se principalmente em um código limpo e bem estruturado, mas também em como tais dados são dispostos e organizados, ou seja, como estão alocados na memória.

O presente artigo irá abordar as principais formas de alocação dinâmica de memória, sintetizando conceitos e apresentando as principais ferramentas da linguagem C a serem utilizadas pelo desenvolvedor no desenvolvimento do seu código. Entre as estruturas de dados básicas encontram-se também os arrays, filas e pilhas, mas nos deteremos a analisar apenas a estrutura das listas.

Alocação de memória dinâmica x estática


Inicialmente, antes de se adentrar na construção de um código, é necessário compreender quais tipos de operações serão realizadas com os dados, bem como a natureza das mesmas. A alocação de memória em um computador pode ser dividida em estática e dinâmica, diferenciando-se principalmente em quais "tempos" ocorrem cada uma.

Alocação de memória estática: ocorre em tempo de compilação. No momento que uma variável ou estrutura é declarada, é necessário informar o seu tipo e tamanho. Realizado esse tipo de alocação, quando o programa está em execução, os espaços de memória necessários para o processamento das variáveis e estruturas estáticas são reservados e utilizados até o fim da execução do programa;

Alocação de memória dinâmica: ocorre em tempo de execução. As variáveis e estruturas apenas são declaradas, mas não têm seus tamanhos definidos. Assim, nenhum espaço de memória será reservado assim que o programa seja executado, desde que não tenha sido requisitado por operações do próprio programa, após ser executado;

Exemplo: arrays (vetores e matrizes) são estruturas alocadas de forma estática na memória. Após terem sidos declaradas e o programa compilado, tornam-se imutáveis em toda a execução do programa.

Alocação dinâmica de memória em linguagem C


A alocação de memória em linguagem C baseia-se na estruturação e manipulação de structs, ponteiros e funções que operam e trabalham com os mesmos. Mas afinal, o que é cada um desses conceitos?

- As structs, também chamadas de registros, definem tipos de dados que agrupam variáveis sob um mesmo tipo de dado. Organizam em sua estrutura, demais estruturas e variáveis de tipos de dados iguais ou diferentes;

- Os ponteiros são variáveis que armazenam o endereço de memória, de uma respectiva estrutura ou variável. Também chamados de apontadores, podem ser compreendidos com "algo" que aponta para alguém na memória;

- As funções para alocação de memória são 4 no total, pertencentes a biblioteca stdlib.h;

Mas afinal, o que são listas, filas e pilhas?

As estruturas de dados fornecem a apresentação dos dados, que devem ser de fácil compreensão para que o desenvolvedor, bem como o usuário, possam realizar uma implementação eficiente das operações necessárias no sistema. As estruturas de dados fornecem uma maneira fácil de organizar, recuperar, processar e armazenar os dados do programa.

Entre as principais estruturas, destacam-se as listas, filas, pilas e árvores binárias (não trataremos dessa última). Cada uma possui a sua especificidade, no entanto, a construção de todas se baseiam em todos os tópicos abordados até o momento.

Listas: é uma estrutura de dado na qual cada elemento, exceto o primeiro e o último, possuem ligação com seu antecessor e sucessor, concectados por ponteiros. Uma das propriedades das listas é seu acesso rândomico, bem como a remoção e inserção de um elemento em qualquer posição da mesma;

Filas: é uma estrutura de dados similar às listas, no entanto com uma versatilidade bem menor. Nas filas, a inserção só é permitida no final, após cada elemento já disposto anteriormente. Já a remoção, por sua vez, ocorre apenas no início da fila;

Pilhas: é uma estrutura de dados similar as anteriores, porém com uma versatilidade ainda menor. A inserção de elementos, bem como a sua remoção, ocorrem apenas em uma das extremidades;

Código em C - Listas

image

Código em C - Filas

image

Código em C - Pilhas

image

Compartilhe
Comentários (1)

VS

Vitor Silva - 03/09/2024 21:29

ótimo artigo!