An open API service indexing awesome lists of open source software.

https://github.com/andre2l2/data-structures

Anotações de algoritmos e estrutura de dados
https://github.com/andre2l2/data-structures

Last synced: 7 months ago
JSON representation

Anotações de algoritmos e estrutura de dados

Awesome Lists containing this project

README

          

# Estrutura de dados e algoritimos

## Temas

- [Filas](#filas)
- [Stack](#stack)
- [Queue](#queue)
- [Deque](#deque)
- [Listas Ligadas](#listas-ligadas)
- [Lista Ligada Simples](#lista-ligada-simples)
- [Lista Duplamente ligada](#lista-duplamente-ligada)
- [Conjuntos](#conjuntos)
- [O que é um conjunto?](#o-que-é-um-conjunto)
- [União](#união-aub)
- [Intersecção](#intersecção-anb)
- [Diferença](#diferença-a-b)
- [Subconjunto](#subconjunto-acb)
- [Mapas/Dicionarios](#mapasdicionarios)
- [Dicionarios](#dicionarios)

## Filas

### Stack

Uma stack (pilha) usa o principio **LIFO** (last in first out) ou sejá o ultimo a entrar será o ultimo a sair. Um bom exemplo é uma pilha de livros, onde só podemos retirar o ultimo livro que foi colocado.

### Queue

O Queue (fila) é semelhante a Stack mas com algumas particulariedades, pois no Queue usamos o principio **FIFO** (first in first out) ou seja, o primeiro a entrar é o primeiro a sair. Um exemplo bacana seria a propira fila de um banco, onde o primeiro a chegar é atendido e logo depois sai da fila.

### Deque

O Deque é o pricipio de **LIFO** e **FIFO** tudo junto e misturado. Onde pode se remover tanto o primerio da fila quanto o ultimo da fila. Com Deque podemos fazer também uma fila _circular_.

## Listas Ligadas

### Lista Ligada Simples

Uma lista ligada tipo de estutura de arrays dinamico, o nome _ligada_ quer dizer que o ultimo elemento da lista aponta para proximo como no exemplo abaixo.
Se você reparar vai ver que na imagem tem um head, pois é onde guardamos a posição do primeiro elemento, para assim possamos comecar a fazer uma iteração.

![linked_list](./docs/img/linked_list.png)

## Conjuntos

### O que é um conjunto?

Os Conjuntos ou Set é um tipo de estrutura de dados para salvar dados que
não podem se repetir, bem semelahnte ao proprio Set nativo do Javascript.

### União (**AuB**)

Retorna um novo conjunto de dados que pertença aos dois conjuntos, como no exemplo abaixo onde AuB.

### Intersecção (**AnB**)

Retorna a um novo conjunto com os elementos de ambos os elementos, como no exemplo abaixo AnB.

### Diferença (**A-B**)

Retorna um novo conjunto com todos os elementos apenas do primeiro conjunto.

### Subconjunto (**AcB**)

Confirma de um conjunto é um subconjunto de outro

## Mapas/Dicionarios

### Dicionarios