chuyangliu / Tastylib
Licence: mit
C++ implementations of data structures, algorithms, and system designs.
Stars: ✭ 101
Projects that are alternatives of or similar to Tastylib
Samples
Sample projects using Material, Graph, and Algorithm.
Stars: ✭ 386 (+282.18%)
Mutual labels: algorithm, data-structure
Lintcode
📘 C++11 Solutions of All 289 LintCode Problems (No More Updates)
Stars: ✭ 570 (+464.36%)
Mutual labels: algorithm, data-structure
Blurtestandroid
This is a simple App to test some blur algorithms on their visual quality and performance.
Stars: ✭ 396 (+292.08%)
Mutual labels: algorithm, benchmark
Tinyqueue
The smallest and simplest priority queue in JavaScript.
Stars: ✭ 322 (+218.81%)
Mutual labels: algorithm, data-structure
Awesome Competitive Programming
💎 A curated list of awesome Competitive Programming, Algorithm and Data Structure resources
Stars: ✭ 9,119 (+8928.71%)
Mutual labels: algorithm, data-structure
Data Structure
基于java语言的数据结构及算法实现,LeetCode算法示例
Stars: ✭ 348 (+244.55%)
Mutual labels: algorithm, data-structure
Interactive Coding Challenges
120+ interactive Python coding interview challenges (algorithms and data structures). Includes Anki flashcards.
Stars: ✭ 24,317 (+23976.24%)
Mutual labels: algorithm, data-structure
Data structures and algorithms in python
📖 Worked Solutions of "Data Structures & Algorithms in Python", written by Michael T. Goodrich, Roberto Tamassia and Michael H. Goldwasser. ✏️
Stars: ✭ 147 (+45.54%)
Mutual labels: algorithm, data-structure
Algorithm Visualizer
🎆Interactive Online Platform that Visualizes Algorithms from Code
Stars: ✭ 35,995 (+35538.61%)
Mutual labels: algorithm, data-structure
Algorithm
Algorithm is a library of tools that is used to create intelligent applications.
Stars: ✭ 787 (+679.21%)
Mutual labels: algorithm, data-structure
Mytinystl
Achieve a tiny STL in C++11
Stars: ✭ 4,813 (+4665.35%)
Mutual labels: algorithm, data-structure
Usaco
General Resources for Competitive Programming
Stars: ✭ 1,152 (+1040.59%)
Mutual labels: algorithm, data-structure
Leetcode
High-quality LeetCode solutions
Stars: ✭ 178 (+76.24%)
Mutual labels: algorithm, data-structure
Algorithms
Minimal examples of data structures and algorithms in Python
Stars: ✭ 20,123 (+19823.76%)
Mutual labels: algorithm, data-structure
Leetcode Solutions
🏋️ Python / Modern C++ Solutions of All 2111 LeetCode Problems (Weekly Update)
Stars: ✭ 2,787 (+2659.41%)
Mutual labels: algorithm, data-structure
Usaco Guide
A free collection of curated, high-quality resources to take you from Bronze to Platinum and beyond.
Stars: ✭ 439 (+334.65%)
Mutual labels: algorithm, data-structure
Binarytree
Python Library for Studying Binary Trees
Stars: ✭ 1,694 (+1577.23%)
Mutual labels: algorithm, data-structure
Skiplist
skip list with rank, code less than z_set in redis
Stars: ✭ 136 (+34.65%)
Mutual labels: algorithm, data-structure
Book on python algorithms and data structure
🪐 Book on Python, Algorithms, and Data Structures. 🪐
Stars: ✭ 604 (+498.02%)
Mutual labels: algorithm, data-structure
Data Structure And Algorithms
A complete and efficient guide for Data Structure and Algorithms.
Stars: ✭ 48 (-52.48%)
Mutual labels: algorithm, data-structure
TastyLib
C++ implementations of data structures, algorithms and useful designs.
Build Status
Linux | Windows | Coverage |
---|---|---|
Outline
Data Structures
Name | Source | Benchmarked | Note | Definition |
---|---|---|---|---|
DoublyLinkedList |
Tests .h |
Yes | A linked data structure that consists of a set of sequentially linked records. It also supports merge sort. | Wikipedia |
BinaryHeap |
Tests .h |
Yes | A heap data structure taking the form of a complete binary tree. A common way of implementing priority queue. | Wikipedia |
HashTable |
Tests .h |
No | A data structure that stores unique elements in no particular order, and which allows for fast retrieval of individual elements based on their values. Similar to std::unordered_set. | Wikipedia |
AVLTree |
Tests .h |
Yes | A self-balancing binary search tree. | Wikipedia |
Graph |
Tests .h |
No | A data structure to implement the directed/undirected graph concepts from mathematics. It stores a graph in an adjacency list or matrix. | Wikipedia |
Algorithms
Name | Source | Benchmarked | Note | Definition |
---|---|---|---|---|
MD5 |
Tests .h |
Yes | A widely used hash function producing a 128-bit hash value. | Wikipedia |
Sort |
Tests .h |
Yes | Including insertion sort, selection sort, heap sort, quick sort, and quick select. For merge sort, please refer to DoublyLinkedList.sort(). | Wikipedia |
Dijkstra |
Tests .h |
No | An algorithm to find the shortest paths between vertices in a graph. | Wikipedia |
LCS |
Tests .h |
No | A dynamic programming solution to find the longest subsequence or substring common to two sequences. |
Wikipedia (substring) Wikipedia (subsequence) |
Designs
Name | Source | Benchmarked | Note | Reference |
---|---|---|---|---|
NPuzzle |
Tests .h |
Yes | A classic searching problem solved with A* search. [GUI] | Wikipedia |
TextQuery |
Tests .h .cpp |
No | Search a given input stream for words. (OOP practice) | §12.3 & §15.9, C++ Primer, 5th Edition |
SharedPtr |
Tests .h |
No | My own version of std::shared_ptr. | §12.1 & §16.1.6, C++ Primer, 5th Edition |
UniquePtr |
Tests .h |
No | My own version of std::unique_ptr. | §12.1 & §16.1.6, C++ Primer, 5th Edition |
Calculator |
Tests .h .cpp |
No | Infix arithmetic expression calculator based on recursive descent parser. | §4.2~4.4, Compilers: Principles, Techniques, and Tools, 2nd Edition |
Installation
-
Build with CMake:
-
Build benchmarks only
$ mkdir build $ cd build $ cmake ..
-
Build benchmarks and testss
$ mkdir build $ cd build $ git submodule init $ git submodule update $ cmake -DTASTYLIB_BUILD_TEST=ON ..
You can customize the CMake Generators.
-
-
Build with GNU Make (assuming a Makefile generator was used):
$ make
-
All executables will be generated in the
bin
directory. Run all tests:$ ctest
License
See the LICENSE file for license rights and limitations.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].