D implementation of data structures in Open Data Structures (ODS).
- Array-Based Lists
- ArrayStack.d: An array-based stack
- FastArrayStack.d: An optimized ArrayStack
- ArrayQueue.d: An array-based queue
- ArrayDeque.d: An array-based deque
- DualArrayDeque.d: An array-based deque which consists of two stacks
- RootishArrayStack.d: A space-efficient array-based stack
- Linked Lists
- SLList.d: A singly-linked list
- DLList.d: A doubly-linked list
- SEList.d: A space-efficient linked list (a.k.a. unrolled linked list)
- Skiplists
- SkiplistSSet.d: A set using a skiplist
- SkiplistList.d: A random-access list using a skiplist
- Hash Tables
- ChainedHashTable.d: A hash table using chaining
- LinearHashTable.d: A hash table using open addressing with linear probing
- Binary Trees
- BinaryTree.d: A basic binary tree
- BinarySearchTree.d: An unbalanced binary search tree
- Random Binary Search Trees
- Treap.d: A treap
- Scapegoat Trees
- ScapegoatTree.d: A scapegoat tree
- Red-Black Trees
- RedBlackTree.d: A red-black tree
- Heaps
- BinaryHeap.d: A binary heap
- MeldableHeap.d: A randomized meldable heap
- Sorting Algorithms
- mergeSort.d
- quickSort.d
- heapSort.d
- countingSort.d
- radixSort.d
- Graphs
- AdjacencyMatrix.d
- AdjacencyList.d
- traversal.d: bfs and dfs
- Data Structures for Integers
- BinaryTrie.d: A binary trie
- XFastTrie.d: A x-fast trie
- YFastTrie.d: A y-fast trie
- External Memory Searching
- BTree.d: A B-tree
$ dub test
- https://github.com/patmorin/ods
- C, C++, Java, Python
- https://github.com/spinute/ods-go
- Go
- https://github.com/o8vm/ods
- Rust