All Projects → chuyangliu → Tastylib

chuyangliu / Tastylib

Licence: mit
C++ implementations of data structures, algorithms, and system designs.

Programming Languages

cpp
1120 projects
cpp11
221 projects

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

  1. 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.

  2. Build with GNU Make (assuming a Makefile generator was used):

    $ make
    
  3. 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].