queuelike-1.0.5: A library of queuelike data structures, both functional and stateful.

Data.Queue.TrieQueue

Description

An experimental trie-based priority queue for lists.

Documentation

type Label e = Seq eSource

data Trie e Source

Constructors

Leaf (Label e) !Int 
Edge (Label e) !Int (Map e (Trie e)) 

Instances

Eq e => Eq (Trie e) 
Show e => Show (Trie e) 
Ord e => Monoid (Trie e) 

type MTrie e = Maybe (Trie e)Source

newtype TrieQueue e Source

Constructors

TQ (HeapQ (Trie e)) 

Instances

Eq e => Eq (TrieQueue e) 
Show e => Show (TrieQueue e) 
Ord e => Monoid (TrieQueue e) 
Ord e => IQueue (TrieQueue e) 

mkLab :: [e] -> Label eSource

catTrie :: Ord e => Label e -> Trie e -> Trie eSource

extractMin' :: Ord e => Trie e -> (Label e, MTrie e)Source

type TailMaker e = Label e -> Trie eSource

merge' :: Ord e => Label e -> Label e -> TailMaker e -> TailMaker e -> (e -> TailMaker e) -> (e -> TailMaker e) -> Trie e -> Trie eSource

merger :: Ord e => Trie e -> Trie e -> Trie eSource

trieFromList :: Ord e => [[e]] -> MTrie eSource