Pular para o conteúdo

Arcane.Collections

Pilha, fila, heap, grafo, união-busca e algoritmos.

exemplo
adopt Arcane.Collections as Col

g := Col.graph()
g.add_edge("casa", "mercado", 3)
g.add_edge("mercado", "trabalho", 4)
g.add_edge("casa", "trabalho", 10)
out g.shortest_path("casa", "trabalho")

fila := Col.priority_queue()
fila.push("rotina", 5)
fila.push("urgente", 1)
out fila.pop()

As estruturas são objetos com métodos próprios (push, pop, add_edge…), não vaults. Chame-os diretamente: fila.push(x).

Funções (35)#

Assinatura
batched(itens, n)
binary_search(ordenado, alvo)
bottom_n(itens, n, chave=None)
cartesian(a, b)
chunk_evenly(itens, partes)
counter(itens)
deep_merge(a, b)
default_vault(padrao=0)
deque(itens=None, limite=None)
difference(a, b)
flatten_deep(itens, profundidade=-1)
graph(dirigido=False)
group_by(itens, chave)
index_by(itens, chave)
intersection(a, b)
is_subset(a, b)
merge_sorted(a, b)
most_common(itens, n=1)
ordered_vault(pares=None)
pairwise(itens)
partition(itens, predicado)
priority_queue()
queue(itens=None)
rotate(itens, n)
set(itens=None)
sliding_window(itens, tamanho)
sort_by(itens, chave)
sort_by_field(itens, campo, reverso=False)
stack(itens=None)
symmetric_difference(a, b)
top_n(itens, n, chave=None)
union(a, b)
union_find(itens=None)
unique_by(itens, chave)
zip_longest(a, b, preencher=None)