Estructuras de datos
Las estructuras de datos son la forma en que las computadoras almacenan y organizan datos. Una estructura de datos se refiere a una colección de elementos de datos que tienen una o más relaciones específicas entre sí. A menudo, las estructuras de datos cuidadosamente elegidas pueden conducir a una mayor eficiencia operativa o de almacenamiento.
Términos relacionados
En estructuras de datos y algoritmos, algunos estudiantes no comprenden la relación entre datos, objetos de datos, elementos de datos y elementos de datos. Trazo de pintura:
Tres elementos de datos
Los tres elementos de la estructura de datos se dividen en estructura lógica, estructura de almacenamiento y operación de datos. La estructura lógica se divide en estructura lineal y estructura no lineal; la estructura de almacenamiento se divide en almacenamiento secuencial, almacenamiento en cadena, almacenamiento de índice y almacenamiento hash. Las operaciones de datos incluyen definición e implementación.
Pasos de aprendizaje de la estructura de datos
El diseño y la implementación de listas enlazadas simples (nodos líderes y nodos no líderes) (agregar, eliminar, cambiar) y el diseño y la implementación de listas dobles. listas enlazadas.
Diseño e implementación de pila (matriz y lista vinculada), diseño e implementación de cola (matriz y lista vinculada)
En segundo lugar, aprenda el concepto de árbol, segundo, recursivo y no recursivo. transversal Preorden, inorden y postorden, atraviesa la secuencia.
Diseño e implementación de árbol de clasificación bidimensional (inserción y eliminación)
Heap (cola de prioridad, clasificación de montón)
Diseño de árbol AVL (equilibrado) e implementación (comprensión e implementación de los cuatro métodos de rotación)
Comprensión conceptual de los principios del árbol de estiramiento y del árbol rojo-negro
Comprensión de los conceptos de los principios B y B+
Comprensión conceptual del principio del árbol de Huffman (estrategia codiciosa)
Comprensión del concepto del principio hash (tabla hash) (varios métodos para resolver conflictos hash)
Unión/Disjunto (optimización y compresión de ruta)
Clasificación topológica de la teoría de grafos
Teoría de grafos dfs recorrido primero en profundidad y bfs recorrido primero en amplitud.
Algoritmo Diikstra de camino más corto, algoritmo Floyd, algoritmo spfa.
Algoritmo Prim de árbol de expansión mínimo y algoritmo kruskal
Otras estructuras de datos, árboles de líneas, matrices de sufijos, etc.
Pasos de aprendizaje del algoritmo clásico
Algoritmo recursivo (factorial, Fibonacci, problema de la Torre de Hanoi)
Búsqueda binaria
Algoritmo divide y vencerás (clasificación rápida, clasificación por combinación, problema de encontrar equivalente al punto más cercano)
Algoritmo codicioso (ampliamente utilizado, problema de selección de intervalo, problema de cobertura de intervalo)
Programación dinámica común (LCS (Subsecuencia común más larga) ) Problema de mochila LIS (subsecuencia ascendente más larga), etc.
Algoritmo de retroceso (problema clásico de ocho reinas, problema de permutación completa)
Operación de bits (consulte Jianzhixian y LeetCode). preguntas)
Algoritmo de exponenciación rápida (exponenciación rápida, exponenciación matricial rápida)
Kmp y otros algoritmos de coincidencia de cadenas
Todos los demás algoritmos de teoría de números (euclidiano, euclide extendido , Teorema chino del resto, etc.)