Last Update: 18/July/2021.
If you like the project, please give it a star ⭐ It will show the creator your appreciation and help others to discover the repo.
The repository contains examples of common Algorithms
and Data Structures
implemented using the latest stable version of Swift
programming language. The development attempts to fully utilize Standard Library
and Protocol-Oriented
paradigm. The project provides interactive visualizations using SpriteKit
and SceneKit
frameworks (in development).
Each major section will be wrapped into a separete .playground
file, meaning that data structures
and algorithms
will be separeted for convenient management.
- About
- Data Structures
- Stack
- Circular Buffer
- Queue
- Priority Queue
- Dequeue
- Linked List
- Doubly Linked List
- Circular Linked List
- Tree
- Binary Tree
- Binary Search Tree
- B-Tree
- Splay Tree
- Red-Black Tree
- AVL Tree
- Trie Tree
- Radix Tree
- Quad Tree
- Octree
- Heap
- Graph
- Algorithms
- Sort
- Search
- String Search
- Brute-Force
- Boyer-Moore
- Rabin-Karp
- Finite automation
- Knuth-Morris-Pratt
- Graphs
- Dijkstra's shortest path algorithm
- Minimum Spanning Tree (unweighted tree)
- Minimum Spanning Tree
- Breadth-First Search (BFS)
- Depth-First Search (DFS)
- Shortest Path (unweighted tree)
The following list contains interactive visualizations that were implemented as part of the project. In majority of cases you can interact with a data structure
or algorithm
through a number of UI
controlls. Visualizations are implemented using SpriteKit
framework and are intended to explain the work of data structures
and algorithms
in a more highlevel way, which is a great way to learn especially if you are a beginner or you aren't familiar with something listed in the repository.
Stack visalization has two main UI controlls: push
and pop
. They perform corresponding operations: adding a new book at the top of the stack and removing the top book from the stack. Also there is a label that shows how many books are in the stack. Since the screen size is limited and for the sake of simplicity, the number of books in stack is limited.
Queue visualization is similar to Stack interactive visualization: it has two main UI
controls that allow you to interact with the interface of the Queue
data structure for enqueue
and dequeue
operations. You can see the number of animals in the queue as well.
THE PROJECT IS UNDER MIT LICENCE