Skip to content

Latest commit

 

History

History
133 lines (94 loc) · 4.27 KB

README.pt-br.md

File metadata and controls

133 lines (94 loc) · 4.27 KB

KaririCode Framework: Data Structure Component

en pt-br

PHP Composer Estruturas de Dados

O KaririCode Data Structure é um componente que fornece uma coleção de estruturas de dados avançadas implementadas em PHP, com foco em tipagem forte e princípios de programação orientada a objetos. Ele inclui implementações de diversas estruturas comuns, como arrays dinâmicos, listas encadeadas, heaps, filas, mapas, conjuntos e pilhas.

Funcionalidades

  • ArrayList: Um array dinâmico que oferece acesso rápido e complexidade amortizada O(1) para adicionar elementos.
  • LinkedList: Uma lista duplamente encadeada com inserção e remoção O(1) nas extremidades e O(n) para acesso em índices arbitrários.
  • BinaryHeap: Um heap binário (min-heap ou max-heap) com O(log n) para inserção, remoção e polling.
  • HashMap: Um mapa baseado em hash que oferece complexidade média de O(1) para as operações put, get e remove.
  • TreeMap: Um mapa implementado como uma árvore rubro-negra, com complexidade O(log n) para put, get e remove.
  • TreeSet: Um conjunto implementado com base no TreeMap, garantindo que os elementos sejam armazenados em ordem.
  • ArrayDeque: Uma fila de duas extremidades usando um array circular com operações amortizadas O(1) nas duas extremidades.
  • ArrayStack: Uma pilha implementada usando um array dinâmico, fornecendo complexidade O(1) para push, pop e peek.

Instalação

Para instalar o componente KaririCode DataStructure, utilize o seguinte comando:

composer require kariricode/data-structure

Exemplos de Uso

Exemplo de ArrayList

use KaririCode\DataStructure\Collection\ArrayList;

$list = new ArrayList();
$list->add("Item 1");
$list->add("Item 2");
echo $list->get(0); // Saída: Item 1

Exemplo de LinkedList

use KaririCode\DataStructure\Collection\LinkedList;

$linkedList = new LinkedList();
$linkedList->add("Primeiro");
$linkedList->add("Segundo");
$linkedList->remove("Primeiro");

Exemplo de BinaryHeap

use KaririCode\DataStructure\Heap\BinaryHeap;

$heap = new BinaryHeap();
$heap->add(10);
$heap->add(5);
$heap->add(20);
echo $heap->poll(); // Saída: 5 (min-heap por padrão)

Exemplo de HashMap

use KaririCode\DataStructure\Map\HashMap;

$map = new HashMap();
$map->put("chave1", "valor1");
echo $map->get("chave1"); // Saída: valor1

Exemplo de TreeSet

use KaririCode\DataStructure\Set\TreeSet;

$set = new TreeSet();
$set->add("valor1");
$set->add("valor2");
echo $set->contains("valor1"); // Saída: true

Exemplo de ArrayStack

use KaririCode\DataStructure\Stack\ArrayStack;

$stack = new ArrayStack();
$stack->push("Primeiro");
$stack->push("Segundo");
echo $stack->peek(); // Saída: Segundo
$stack->pop();       // Remove "Segundo"

Exemplo de ArrayDeque

use KaririCode\DataStructure\Queue\ArrayDeque;

$deque = new ArrayDeque();
$deque->addFirst("Primeiro");
$deque->addLast("Último");
echo $deque->peekLast(); // Saída: Último
$deque->removeLast();    // Remove "Último"

Testes

Para rodar os testes do componente KaririCode DataStructure, execute o seguinte comando:

make test

Licença

Este projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

Suporte e Comunidade


Feito com ❤️ pela equipe KaririCode. Mantido por Walmir Silva - walmir.silva@kariricode.org