image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Jardel Moraes
Jardel Moraes13/01/2022 17:55
Compartilhe

Um Guia Compreensivo de Estrutura de Dados e Algoritmos

  • #Estrutura de dados

O estudo acerca de estruturas de dados e algoritmos surge da necessidade de armazenar, qualificar, tratar ou excluir dados diversos que podem ser coletados de inúmeras formas. Um exemplo básico é um sistema de cadastro de usuários. Nesse sistema podemos ter dados como o nome, o CPF e e-mail do usuário para exemplificação. De posse dos dados inseridos pelo usuário em uma tela de cadastro surge a seguinte preocupação: Como podemos trabalhar com esses dados de forma com que nada seja perdido ou não haja o cruzamento indevido de dados de clientes diferentes?

Nesse sentido, o estudo acerca de estrutura de dados e algoritmos se mostram extremamente importantes e viáveis para implementação de processos para tratamentos de dados.

Inicialmente é necessária uma introdução a tipificação dos dados, ou seja, quais são os tipos de dados mais utilizados no dia a dia do desenvolvedor.

Tipos de dados mais comuns — Tipos primitivos com base em c#

Valores booleanos

Uma variável do tipo Booleana pode receber um valor true ou false, ou seja, verdadeiro ou falso, 1 ou 0, ligado ou desligado. Com ela podemos fazer operações com guardar um estado dependente de uma condição no código e realizar uma tarefa com esse acionamento da variável.

Caracteres

Uma variável do tipo char é geralmente utilizada para armazenar letras ou palavras. Em C# utiliza-se o tipo string definido para armazenar textos e o conteúdo deve estar delimitado entre aspas duplas.

Valores numéricos inteiros

O tipo int representa um valor numérico inteiro, ou seja, um número que não está quebrado em casas decimais podendo ser negativo ou positivo.

Valores numéricos reais

Os tipos float double representam valores em ponto flutuante, limitados apenas pela precisão da máquina que executa o programa. O tipo float oferece seis dígitos de precisão enquanto que double suporta o dobro da precisão de um float. Geralmente utiliza-se o (.) para representação do número real, como exemplo temos o número (1.5).

Estrutura de dados

Consiste em uma estrutura organizada na memória de um dispositivo. Essa estrutura tem como principal finalidade possibilitar que operações sejam feitas com os dados de maneira correta e com segurança.

Inúmeras aplicações relacionadas ao desenvolvimento de sistemas utilizam como base essas estruturas que podem ser utilizadas para tarefas específicas da aplicação. Através de estruturas adequadas podemos por exemplo trabalhar com banco de dados e aplicativos de busca através de um conjunto de operações realizadas por algoritmos.

Algoritmo

Consiste em um conjunto de operações estruturadas e ordenadas com a finalidade de executar uma tarefa ou operação específica. Nas estruturas de dados, os algoritmos são utilizados para realizar operações com diferentes propósitos como: inserir, excluir, atualizar, ordenar ou procurar dados, entre outras.

Principais estruturas de Dados:

Às principais estruturas de dados utilizadas no dia a dia do desenvolvedor são:

Vetores e Matrizes (Arrays);

Registro;

Lista;

Pilha;

Fila;

Árvore;

Tabela Hash.

Vetores Matrizes (Arrays)

São estruturas de dados simples que podem auxiliar quando existem muitas variáveis de um mesmo tipo a serem utilizadas em um algoritmo. O vetor é caracterizado por uma Array unidimensional que armazena uma determinada quantidade de elementos. Já uma matriz é uma array multidimensional com no mínimo duas linhas e duas colunas.

image

Registro

Consiste em uma estrutura que fornece um formato especializado para armazenagem de informações na memória. O registro permite inserirmos diferentes tipos de variáveis em sua composição.

Geralmente as classes no registro são nomeadas de forma a facilitar o acesso aos dados e sua característica de acesso é dada pela inserção do operador (.) entre o registro e sua classe. Um exemplo seria considerando o registro produtos com intuito de acessar o preço do mesmo:

Produtos.preco;

Lista

Existem 2 tipos de listas. As ligadas e as duplamente ligadas.

Lista ligada

Na estrutura tipo lista ligada existem nós onde cada um dos nós conhece o valor armazenado em seu interior e também conhece o elemento posterior a ele. Os nós são amarrados com a indicação de qual é o próximo nó.

image

Lista duplamente ligada

N estrutura do tipo listas duplamente ligadas temos uma diferença considerável em relação a amarração dos nós, onde o no conhece o seu sucessor e também o seu antecessor o que caracteriza uma bidirecionalidade.

image

Pilhas

Refere-se a uma estrutura que serve como uma coleção de elementos que permite o acesso a somente um elemento por operação realizada, ou seja, somente um elemento pode ser inserido ou removido por vez. Existem dois tipos de pilhas a FIFO (First in First Out) e a LIFO (Last in First Out)

PILHA FIFO

O primeiro elemento que for inserido na pilha é o elemento que poderá ser retirado dela.

image

PILHA LIFO

O último elemento que for inserido na pilha é o elemento que poderá ser retirado dela.

image

FILAS

A estrutura do tipo Fila admite remoção de elementos seguindo a regra de que o elemento a ser excluído tem que ser o que estiver a mais tempo dentro do conjunto de dados.

image

Árvore

É uma estrutura que organiza seus elementos de forma hierárquica, onde existe um elemento pai que estará ligado a seus elementos filhos. Existe um elemento ligado ao topo da árvore, chamado de raiz e existem os elementos subordinados a ele, chamados de nós ou folhas.

image

Tabela Hash

A Tabela Hash consiste em uma generalização para a idéia de Array, na qual é utilizada uma função denominada hashing para espalhar os elementos, os deixando de forma desordenada dentro do “array” que define a tabela. Os elementos são espalhados e ganham uma chave de acesso que guarda parte da informação que compõem o elemento d forma que é possível se encontrar o elemento de forma agilizada quando necessário.

image

Entre em cotato:

Linkedin

Compartilhe
Comentários (3)

MS

Marcone Silveira - 27/06/2022 14:42

Muito bom teu post Jardel. Obrigado por compartilhar.

Rafael Lima
Rafael Lima - 14/01/2022 18:20

Jardel meu camarada, ótimo post ficou bem claro e com detalhes e melhor ainda com imagens muito bom mesmo, ansioso por mais!!!

Marcos
Marcos - 13/01/2022 20:28

Ótimo artigo