Skip to content

Latest commit

 

History

History
86 lines (50 loc) · 4.07 KB

README.md

File metadata and controls

86 lines (50 loc) · 4.07 KB

Data Structure and Algorithm in C++

Go over basic data structures and algorithms. At the same time pick up the missing parts of C++, and other languages. GPU? Networking? ML?

The order of learning is to follow basic data structures and common algorithms based on them, and to implement the solutions of LeetCode questions in C++ and other languages.

chapter content
01-hello hello
02-array array
03-linked list linked-list
04-hash table hash table
05-string string
06-double-pointer double-pointer
07-stack and queue stack and queue
08-binary tree binary tree
09-back tracking back tracking
10-greedy algorithm greedy
11-dynamic programming DP
12-monotonic stack monotonic stack
13-graph graph

notes on data structures and algorithms

Array, stack, heap/queue, priority queue, deque and so on are linear structures with special and limited access to their elements. The linked list is logically linear and physically non-linear. Then binary trees and graphs become even more nonlinear. Both array and linked list are basics.

Then hashing, two-pointer, sliding window, binary search are clever with specific conditions to apply. DFS, BFS, backtracking, DP, greedy are just general ideas to deal with specific problems, somwhere they are very close to brute force that is the strength of computers.

The idea of recursion in algorithms is very powerful. Together with iteration, both are different traversal approaches. For recursion, go from head to tail or reversely. This is also a string point of computer.

Other topics like tries, knapsack, intervals, bit-manipulation, math and geomotry are more specific.

references

notes