Article image
RAFAEL PEREIRA
RAFAEL PEREIRA18/11/2021 23:32
Compartilhe

Estruturas de Dados e Algoritmos

  • #Estrutura de dados
  • #Java

E ai devs, tudo certo com você?

Há alguns dias atrás eu conclui o curso de Estrutura de dados aqui na plataforma DIO.me e fiz anotações que o professor usou nas aulas e vou compartilhar com vocês, para ser como um guia rápido pra nós aqui.

Fiquem a vontade de pesquisar e tirar as dúvidas e também deixem um comentário com sugestões, logo ali abaixo.

Sem mais delongas, vamos para o conteúdo principal deste artigo.

Estruturas de Dados:

  • Estruturas de Dados é uma estrutura organizada de dados na memória de um computador ou em qualquer dispositivo de armazenamento, de forma que os dados possam ser utilizados de forma correta. 
  • Essas estruturas encontram muitas aplicações no desenvolvimento de sistemas, sendo que algumas são altamente especializadas e utilizadas em tarefas específicas. Usando as estruturas adequadas através de algoritmos, podemos trabalhar com uma grande quantidade de dados, como aplicações em bancos de dados ou serviços de busca.

Principais Estruturas de dados:

  • Vetores e Matrizes;
  • Registros;
  • Listas;
  • Pilha;
  • Fila;
  • Árvore;
  • Tabela Hash;
  • Grafos;

Algoritmo:

  • Um Algoritmo é um conjunto de instruções estruturadas e ordenadas, seu objetivo é realizar uma tarefa ou operação específica.
  • Os algoritmos são utilizados para manipular dados nas estruturas de várias formas, como por exemplo: inserir, excluir, procurar e ordenar dados.
  • Em uma estrutura de dados devemos saber como realizar um determinado conjunto de operações básicas, como por exemplo: 
  • Inserir dados;
  • Excluir dados;
  • Localizar um elemento;
  • Percorrer todos os itens constituintes da estrutura para visualização;
  • Classificar, que se resume em colocar os itens de dados em uma determinada ordem (numérica, alfabética, etc.);

Vetores e Matrizes:

Vetores e Matrizes ou Arrays (Arranjos) são estruturas de dados simples que podem auxiliar quando há muitas variáveis do mesmo tipo em um algoritmo.

https://portugol-webstudio.cubos.io/ide

Vetor:

Sobre: Vetor ou array unidimensional é uma variável que armazena várias variáveis do mesmo tipo.

O vetor é uma estrutura de dados indexada, que pode armazenar uma determinada quantidade de valores do mesmo tipo.

Matriz:

Sobre: Matriz ou array multidimensional é um vetor de vetores. Uma matriz é um vetor que possui duas ou mais dimensões.

Registro:

Sobre: Um Registro é uma estrutura que fornece um formato especializado para armazenar informações em memória.

Enquanto Arrays nos permite armazenar vários dados de um único tipo de dados, o recurso de Registro nos permite armazenar mais de um tipo de dado.

Um Registro é composto por campos que especificam cada uma das informações que o compõem. Exemplo: Comprovante de passagem de ônibus.

Abaixo podemos ver alguns campos de exemplo que constituem o registro de um cliente:

CPF

Nome

Endereço

Contato

Toda estrutura de Registro em um nome (ex: livro), e seus campos podem ser acessados por meio do uso do operador ponto (.). Por exemplo, para acessar o preço de um livro, poderíamos utilizar a seguinte declaração: 

livro.preco 

Programa que declara Registro e armazena informações de três livros:

ALGORITMO

// declaração do tipo de dado

tipo

estrutura_livro = registro

nome : caracter

preco : real

paginas : inteiro

fimregistro

// declaração de variáveis

i inteiro

livro array[1, 2, 3] de estrutura_livro

escreva(“Entre com os nomes, preços e números de páginas de três livros”)

para i de 1 até 3 faça // leitura de dados

leia(livro[i].nome, livro[i].preco, livro[i].paginas)

fimpara

escreva(“Esses foram os dados digitados”)

para i de 1 até 3 faca

leia(livro[i].nome, livro[i].preco, livro[i].paginas)

fimpara

FIMALGORITMO

Listas:

Estruturas de Dados do tipo Lista, armazena dados de um determinado tipo em uma ordem específica.

A diferença entre listas e arrays é a de que as listas possuem tamanho ajustável, enquanto arrays possuem tamanho fixo.

Existem dois tipos de listas: 

Ligadas e 

Duplamente Ligadas.

Lista Ligada: 

Na estrutura do tipo lista existem os nós onde cada um desses nós conhece o valor que está sendo armazenado em seu interior além de conhecer o elemento posterior a ele: Por isso ela é chamada de “lista ligada”, pois os nós são amarrados com essa indicação de qual é o próximo nó.

Lista Duplamente Ligadas:

As listas duplamente ligadas constituem uma variação das listas ligadas.

A grande diferença das listas duplamente ligadas para as listas ligadas é que elas são bidirecionais. Vimos que, naturalmente, não conseguimos “andar para trás” em listas ligadas, pois os nós de uma lista ligada sabem somente quem é o próximo elemento. Nas listas duplamente ligadas, sabem quem é o próximo elemento e também que é o anterior, o que permite a navegação reversa.

Pilhas:

Uma Pilha é uma estrutura de dados que serve como uma coleção de elementos, e permite o acesso a somente um item de dados armazenado.

Tipo de Pilhas: 

LIFO ou UEPS (em pt-br)

FIFO ou PEPS (em pt-br)

LIFO ou UEPS (em pt-br):

A estrutura do tipo Pilha LIFO (Last in First Out) ou UEPS (Último que entra Primeiro que Sai), apresenta o seguinte critério: o primeiro elemento a ser retirado é o último que tiver sido inserido.

FIFO ou PEPS (em pt-br):

A estrutura do tipo Pilha FIFO (First in First Out) ou PEPS (Primeiro que Entra Primeiro que Sai), apresenta o seguinte critério: o primeiro elemento a ser retirado é o primeiro que tiver sido inserido.

Filas:

A estrutura do tipo Fila admite remoção de elementos e inserção de novos sujeita à seguinte regra de operação:

O elemento removido é o que está na estrutura há mais tempo, ou seja, o primeiro objeto inserido na fila é também o primeiro a ser removido seguindo o conceito de FIFO.

Árvore:

É uma estrutura de dados que organiza seus elementos de forma hierárquica, onde existe um elemento que fica no topo da árvore, chamado de raiz e existem os elementos subordinados a ele, que são chamados de nós ou folhas.

Tabela Hash: Tabela de Espalhamento

Uma tabela hash, de dispersão ou espalhamento é uma estrutura de dados especiais, que associa chaves de pesquisa a valores.

Uma tabela hash é uma generalização da idéia de array, porém utiliza uma função denominada Hashing para espalhar os elementos, fazendo com que os mesmos fiquem de forma ordenada dentro do “array” que define a tabela.

Porque espalhar?

A tabela hash permite a associação de “valores” a "chaves ``.

Valores: é a posição ou índice onde o elemento se encontra

Chave: parte da informação que compõe o elemento a ser manipulado.

Espalhar facilita a busca na estrutura de dados, pois a partir de uma chave podemos acessar de forma rápida uma posição do “array”.

Grafos: 

Grafos são estruturas que permitem programar a relação entre objetos.

Os objetos são vértices ou “nós” do grafo.

Os relacionamentos são arestas.

E por hoje é isso devs... Nos vemos em breve por aqui!!!

Até mais e fiquem com Deus!

Compartilhe
Comentários (0)