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.
- 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
eremove
. - TreeMap: Um mapa implementado como uma árvore rubro-negra, com complexidade O(log n) para
put
,get
eremove
. - 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
epeek
.
Para instalar o componente KaririCode DataStructure, utilize o seguinte comando:
composer require kariricode/data-structure
use KaririCode\DataStructure\Collection\ArrayList;
$list = new ArrayList();
$list->add("Item 1");
$list->add("Item 2");
echo $list->get(0); // Saída: Item 1
use KaririCode\DataStructure\Collection\LinkedList;
$linkedList = new LinkedList();
$linkedList->add("Primeiro");
$linkedList->add("Segundo");
$linkedList->remove("Primeiro");
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)
use KaririCode\DataStructure\Map\HashMap;
$map = new HashMap();
$map->put("chave1", "valor1");
echo $map->get("chave1"); // Saída: valor1
use KaririCode\DataStructure\Set\TreeSet;
$set = new TreeSet();
$set->add("valor1");
$set->add("valor2");
echo $set->contains("valor1"); // Saída: true
use KaririCode\DataStructure\Stack\ArrayStack;
$stack = new ArrayStack();
$stack->push("Primeiro");
$stack->push("Segundo");
echo $stack->peek(); // Saída: Segundo
$stack->pop(); // Remove "Segundo"
use KaririCode\DataStructure\Queue\ArrayDeque;
$deque = new ArrayDeque();
$deque->addFirst("Primeiro");
$deque->addLast("Último");
echo $deque->peekLast(); // Saída: Último
$deque->removeLast(); // Remove "Último"
Para rodar os testes do componente KaririCode DataStructure, execute o seguinte comando:
make test
Este projeto é licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.
- Documentação: https://kariricode.org
- Rastreador de Problemas: GitHub Issues
- Comunidade: KaririCode Club Community
- Suporte Profissional: Para suporte empresarial, entre em contato conosco pelo e-mail support@kariricode.org
Feito com ❤️ pela equipe KaririCode. Mantido por Walmir Silva - walmir.silva@kariricode.org