data structure
Data structure is the way that computers store and organize data. A data structure refers to a collection of data elements that have one or more specific relationships with each other. Generally, a well-chosen data structure can lead to higher operation or storage efficiency.
Related terms
In data structure and algorithm, some students don't understand the relationship among data, data objects, data elements and data items. To stroke by painting:
Three elements of data
The three elements of data structure are divided into logical structure, storage structure and data operation. Logical structure is divided into linear structure and nonlinear structure; The storage structure is divided into sequential storage, chain storage, index storage and hash storage. Data manipulation includes definition and implementation.
Data structure learning steps
Design and implementation of single linked list (leading node and non-leading node) (adding, deleting and changing), and design and implementation of double linked list.
Stack design and implementation (array and linked list), queue design and implementation (array and linked list)
Second, learn the concept of tree. Second, recursively and non-recursively traverse the pre-order, middle-order and post-order, and traverse the sequence.
Design and implementation of two-dimensional sort tree (insert and delete)
Heap (priority queue, heap sort)
Design and Implementation of AVL (Balance) Tree (Understanding and Implementation of Four Rotation Modes)
Conceptual understanding of stretch tree and red-black tree principle
Understand the concept of B and B+ principle.
Conceptual Understanding of Huffman Tree Principle (Greedy Strategy)
Understand the concept of hash (hash table) principle (several methods to solve hash conflict)
Union/Disintersection (Optimization and Path Compression)
Graph theory topological sorting
Graph theory dfs depth-first traversal and bfs breadth-first traversal.
Diikstra algorithm of shortest path, Floyd algorithm, spfa algorithm.
Prim algorithm and kruskal algorithm of minimum spanning tree
Other data structures, line trees, suffix arrays, etc.
Classical algorithm learning steps
Recursive algorithm (factorial, Fibonacci, Hanoi Tower problem)
Binary retrieval
Divide and conquer algorithm (quick sorting, combined sorting, finding nearest point equivalence problem)
Greedy algorithm (widely used, interval selection problem, interval coverage problem)
Common dynamic programming (LCS (longest common subsequence) LIS (Longest Ascending Subsequence) knapsack problem and so on.
Backtracking algorithm (classical eight queens problem, total permutation problem)
Common problems in bit operation (refer to the problem of sword finger offering and LeetCode)
Fast power algorithm (fast power, fast matrix power)
Kmp and other string matching algorithms
All other number theory algorithms (Euclid, extended Euclid, China remainder theorem, etc. )