Git Product home page Git Product logo

912-dsa's Introduction

912 DSA

A C++ implementation of 912 DSA.

CI Open issues License

Contents

Introduction

This is a code implementation of 912 DSA, which is a data structure course offered by Tsinghua University.

Todo

  • Tree
    • B Tree
    • Red-Black Tree
    • Kd Tree
  • Dict
    • Hash Table
    • Skip List
      • Quadlist
ID Chapter Implementation
1 Introduction Fibonacci
2 Vector Vector, Bitmap, BitmapQuickInit
3 List ListNode, List
4 Stack and Queue StackInterface, Stack, LinkedStack,StackExample, Queue
5 Binary Tree BinTreeNode, BinTree
6 Binary Search Tree BST, AVL
7 BST Applications /
8 Advanced BST SplayTree, BTree, RBTree
9 Dictionary /
10 Graph Graph,GraphMatrix,GraphList
11 Graph Applications /
12 Priority Queue /
13 String /
14 Sorting /
NaN Other Iterator

Installation

git clone --recurse-submodules https://github.com/hnlcf/912-dsa.git

cd 912-dsa

Build

Dependency

Tools

  • cmake
  • python

Library

Using catch2 for testing which managed by git submodules.

  • catch2

Using script

1. CMake build and ctest

python tools.py --all

2. Catch2 test

python tools.py --catch2

Manual

1. CMake config

mkdir -p build && cd build

cmake -DCMAKE_BUILD_TYPE=Release ..

2. Build

cmake --build . --config Release --parallel 12

3. Run ctest

ctest -C Release --verbose

License

MIT

912-dsa's People

Stargazers

 avatar  avatar

Watchers

 avatar

912-dsa's Issues

Feature: complete all basic methods of binary tree

All tasks to do

BinTreeNode

  • successor
  • compare operator overloads
  • assist functions

BinTree

  • insert
    • insert root to a empty tree
    • insert node
    • insert subtree
  • remove
    • free a subtree
    • remove a subtree and return it
  • traverse
    • level
    • preorder
    • inorder
    • postorder

test_tree

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.