the most important thing that this article told me, is the category of data strutures and algorithm.
the bold area is the place I don’t really know or forgot how to implement them. and for each of them, I will write articles about it specifically

data structure:
linear table: array(array, arraylist), linkedlist(SLL, DLL, circular linkedlist), skiplist, Union find
Stack and Queue: stack. queue(general queue, pq, deque), heap. 多级反馈队列(?)
hash: hashtable, hashset, hashmap(concurrent hashmap), bloom filter.
tree: binary tree, bst, avl, red and black tree, B and B+, trie, segment tree.
数组:树状数组,矩阵

common algorithm:
sorting algorithm: (based on comparision sort and non-comparision/adpative/stability/iterative or recursion…we have ten common)
search algorithm: binary search(this search can generalized be used in any ordered data structures, and often used in many unexpected problem, so it is important for use to have sort of “binary idea” about anything)
graph related algorithm: bfs/dfs, shortest path(three: dijkstra…), mst(prim, kruskal), topology, bigraph(hunguarian alg), 中心性算法,社区发现算法(KNN and other ML methods?)?
searching and backtracking algorithm: 启发式算法, greedy, backtracking
dp: (what are the general kinds of dp?) according to previous article,we have:
Some Thoughts about_ide
but I don’t really understand what tree shape dp means, and why knapsack is such kind of problem.

Pattern Matching algorithm: regular expression matching, Boyer-Moore, KMP, Karp-Robin.
Streaming related algorithm: never heard of that.

for all above data structure and algorithm, I do have some thoughts,
first, besides streaming related algorithm, I understand every other things this article says. however, do I really know how to use them in different circumstances? and when I need to use them, can I implement them fast and adjustable for my special problem? No.