The purpose of this project is to implement a series of well-known data structures in the swift programming language. Although this structures may be useful, the main focus of this project will be on learning about both the swift programming language and the inner workings of data structures.
Basic list of structures to be implemented:
- Linear data structures:
- Singly linked list
- Doubly linked list
- Queue
- Stack
- Deque (double ended queue)
- Trees:
- Tree maps:
- AVL tree map
- Left-leaning red-black tree map
- Tree maps:
- Graphs:
- Graph
- Directed graph
- Weighted graph
- Algorithms:
- Dijkstra
- ...
- Union-find
- Heaps:
- Binomial heap
- Fibonacci Heap
When possible, each data structure will conform to the Sequence protocol, the Collection protocol or any of their children protocols. Moreover, new protocols for handling, for example, TreeMapCollections will be developed, to ease the creation of new TreeMap types.
Note that this whole project is a work in progress. If you use any of the structures, it is your responsibility to check if it is already on working order.