RodrigoCh99 / EstruturasDeDadosEmJs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Estruturas De Dados Em .Js

Como rodar os códigos:

  • instale o node.js e rode os arquivos usando: node nome_do_arquivo.js
  • caso esteja usando o vs code siga o tutorial

Estes códigos são baseados no livro: Estruturas de Dados e Algoritmos com JavaScript

Tabela de complexidade para consulta rápida:

ESTRUTURA DE DADOS CASOS MÉDIOS PIOR CASO
Inserção Remoção Busca Inserção Remoção Busca
Array/Queue/Stack O(1) O(1) O(n) O(1) O(1) O(n)
LinkedList O(1) O(1) O(n) O(1) O(1) O(n)
DoublyLinkedList O(1) O(1) O(n) O(1) O(1) O(n)
HashTable O(1) O(1) O(1) O(n) O(n) O(n)
BinarySearchTree O(log(n) O(log(n) O(log(n) O(n) O(n) O(n)
AVLTree O(log(n) O(log(n) O(log(n) O(log(n) O(log(n) O(log(n)
RedBlackTree O(log(n) O(log(n) O(log(n) O(log(n) O(log(n) O(log(n)
BinaryHeap O(log(n) O(log(n) O(1):
encontrar
min e max
O(log(n) O(log(n) O(1)

Estruturas de dados Interessantes que não estão no livro mas foram implementadas

  • Priority queue: uma fila em que o objeto possui uma prioridade associada quando é inserido na fila.
  • Multiset (bag ou mset): um multiconjunto é a generalização de um conjunto, de tal forma que permite a repetição de elementos.
  • Hashset: um conjunto com função de espalhamento.
  • DoubleHashTable: hashtable que usa função de espalhamento dupla para lidar com colisões.
  • NestedHashTable: hashtable que usa aninhamento de tabelas de espalhamento para lidar com colições e armazenar dados em hierarquia.
  • Hashed Array Tree: Árvore que soluciona o problemas do array statico (aumento de comprimento) de forma mais performática que o array de comprimento variavel.
  • Rope: estrutura baseada em árvores que serve para armazenar strings longas.

About


Languages

Language:JavaScript 100.0%