La universidad no comprende las estructuras de datos ni los algoritmos.

Estructura de datos ¿Cómo aprenden los estudiantes universitarios la estructura de datos? Cinco diagramas de contexto

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.)