El código fuente en este proyecto está equipado con el libro de texto " Data Structure -C Language Edition " [Yan Weimin, Wu Weimin Edition] y " Collection de preguntas de estructura de datos - C Language Edition " [Yan Weimin, Wu Weimin, Mining Edition].
| Libro de texto de estructura de datos | Conjunto de preguntas de estructura de datos |
|---|---|
![]() | ![]() |
Este proyecto incluye el código fuente del libro de texto y el código fuente del ejercicio , y se divide en 4 versiones, a saber: CFree , Dev-C ++ , Clion y VisualC ++ , entre las cuales:
Elección de IDE
CFree es un excelente software doméstico. Sin embargo, el producto ha sido descontinuado durante mucho tiempo, y hay algunos problemas de compatibilidad en Win10 y debe ajustarse.
Dev-C ++ es un software de código abierto que es tan pequeño y práctico como CFree. Lo más importante es que es compatible con Win10 y se recomienda.
Clion requiere un poco de conocimiento de CMake y requiere requisitos de rendimiento ligeramente más altos para los cuadernos. Sin embargo, los productos de la serie JetBrains tienen excelentes funciones y se recomienda probarlos.
Microsoft Visual C ++ es producido por Microsoft. Si no toma C/C ++/C# y otras rutas en el futuro, no puede usarlas primero. (Nota: Desde 2018, VC ++ 6 ha sido reemplazado por Microsoft Visual C ++ 2010 en el segundo nivel del examen de lenguaje de la computadora C. Entonces, si tiene necesidades de calificación, familiarícese con este IDE)
El análisis de las preguntas sin código en la "recopilación de preguntas de la estructura de datos" se almacena en el análisis de ejercicios .
注:
1. "CFree"是完整版本。"Dev-C++"/"CLion"/"VisualC++"是新增的版本,这三个版本最终会取代"CFree"版本。
2. "CFree"版本既可以用CFree直接打开,也支持用Dev-C++打开,所以当使用CFree遇到兼容问题时,可尝试用Dev-C++。
3. 上述四个版的代码是同步更新的,但是各版本之间相互独立,没有任何依赖关系,允许单独运行/测试。
4. 对所有版本的代码均未充分测试,尤其是很多代码没有完成的边界检查(原因是此处以实现算法正确性为目的,而较少考虑程序的健壮性),所以如有BUG请到Issues反馈。
El objetivo general es garantizar la corrección, mejorar la legibilidad y reducir la dificultad de aprendizaje.
Después de clonarse/descargar el código fuente en el área local, puede ver los archivos ReadMe en cada rama para obtener información de ayuda

| Número de serie | emoji | Significado en este proyecto | Marca de abreviación |
|---|---|---|---|
| (0) | ? | Inicializar el proyecto | :tada: |
| (1) | Actualizar documentación, incluida, entre otros, ReadMe | :memo: | |
| (2) | Relase el nuevo código fuente | :bulb: | |
| (3) | ♻️ | La refactorización se refiere principalmente a modificar el código fuente y los comentarios existentes | :recycle: |
| (4) | ✏️ | La corrección de pruebas se refiere principalmente a la corrección de errores tipográficos, modificando el diseño del código fuente, la actualización de comentarios, etc. | :pencil2: |
| (5) | ? | Corrige errores en el código | :bug: |
Blog personal
Fuente de referencia de emoji en información de confirmación:
| capítulo | Festival | contenido | Incluye algoritmo | Observación |
|---|---|---|---|---|
| 01 Introducción | Estado | Definir algunas constantes y funciones compartidas | ||
| 02 mesa lineal | Sqlist | Tabla de secuencia | 2.3, 2.4, 2.5, 2.6 | Estructura de almacenamiento secuencial de tablas lineales |
| Unión | A = a∪b | 2.1 | ||
| Mergeqlist | C = A+B | 2.2, 2.7 | Tabla de pedido de fusionar | |
| Linklist | Lista de enlaces | 2.8, 2.9, 2.10, 2.11 | Estructura de almacenamiento de cadena de tablas lineales | |
| De la férmica | C = A+B | 2.12 | Lista de enlaces de fusionar | |
| Listón | Lista vinculada estática | 2.13, 2.14, 2.15, 2.16 | ||
| Diferencia | (Ab) ∪ (BA) | 2.17 | ||
| Malklist | Lista de enlaces de bucle bidireccional | 2.18, 2.19 | ||
| Listón | Lista de enlaces lineales extendidos | 2.20 | ||
| Fusionista | C = A+B | 2.21 | Lista de enlaces lineales combinados y extendidos | |
| Polinomio | Polinomio de ida | 2.22, 2.23 | ||
| 03 pila y cola | Sqstack | Pila | Estructura de almacenamiento secuencial | |
| Conversión | Conversión prioritaria | 3.1 | Aplicación de pila | |
| Lineedit | Programa de edición de línea | 3.2 | Aplicación de pila | |
| Laberinto | Manse de laberinto de encontrar | 3.3 | Aplicación de pila | |
| Expresión | Evaluación de la expresión | 3.4 | Aplicación de pila | |
| Hanoi | Torre de Hannor | 3.5 | recursión | |
| Linkqueue | Columna de cadena | Estructura de almacenamiento de cadena | ||
| Sqqueue | Cola secuencial | Cola de bucle, estructura de almacenamiento secuencial | ||
| Bancos | Simular la cola bancaria | 3.6, 3.7 | Aplicación de cola | |
| 04 cadena | String | Cadena de secuencia | 4.1, 4.2, 4.3, 4.5 | Almacenamiento secuencial |
| Hstring | Cuerda de montón | 4.4 | Almacenamiento secuencial, asignación dinámica de la memoria | |
| Listón | Cadena de blockchain | Almacenamiento secuencial + almacenamiento de cadena | ||
| KMP | Algoritmo de KMP | 4.6, 4.7, 4.8 | Algoritmo de coincidencia de cadenas | |
| Lista de palabras | Índice de palabras clave | 4.9, 4.10, 4.11, 4.12, 4.13, 4.14 | Aplicación de cadenas de montón y tablas lineales | |
| 05 matrices y tablas generalizadas | Formación | Matriz multidimensional | ||
| Tsmatriz | Matriz escasa | 5.1, 5.2 | Cómo almacenar tablas de pedido triple | |
| Rlsmatriz | Matriz escasa | 5.3 | Cómo almacenar la tabla de pedidos de los enlaces lógicos de fila | |
| Retray | Matriz escasa | 5.4 | Método de almacenamiento de la lista de enlaces cruzados | |
| Chispeante | Mesa generalizada | 5.5, 5.6, 5.7, 5.8 | Lista de enlaces de cabeza y cola Representación de almacenamiento | |
| Brillo-e | Mesa generalizada | Representación de almacenamiento de la lista lineal extendida | ||
| Mplista | M-PART POLINOMAL | Almacenamiento en cadena | ||
| 06 Árbol y árbol binario | Sqbitree | Estructura de almacenamiento secuencial de árbol binario | ||
| Bitree | Estructura de almacenamiento de la lista binaria de la lista del árbol binario | 6.1, 6.2, 6.3, 6.4 | ||
| Bitritre | La estructura de almacenamiento de la lista vinculada de tres cuartos del árbol binario | |||
| Bithrtree | Pista binario | 6.5, 6.6, 6.7 | ||
| Ptree | La representación de almacenamiento de la tabla principal del árbol | |||
| Cree | La representación de almacenamiento de la lista vinculada para niños del árbol (con padres) | |||
| Cstree | Representación de la estructura de la lista binaria de la lista binaria del árbol (hermano infantil) | |||
| Mfset | recolectar | 6.8, 6.9, 6.10, 6.11 | ||
| Huffantree | Árbol de huffman | 6.12, 6.13 | También conocido como "Hafman Tree" | |
| Género | Recopilación | 6.14/6.15 | ||
| Níaca | N Problema de la reina | 6.16 | ||
| 07 Imagen | Mgraph | El almacenamiento de la matriz de adyacencia del gráfico | 7.1, 7.2, 7.4, 7.5, 7.6 | Gráfico dirigido, red dirigida, gráfico no dirigido, red no dirigida |
| Algrafía | El almacenamiento de tabla adyacente del gráfico | Gráfico dirigido, red dirigida, gráfico no dirigido, red no dirigida | ||
| Olgraph | El almacenamiento de la lista de enlaces cruzados del diagrama | 7.3 | Gráfico dirigido, red dirigida, gráfico no dirigido, red no dirigida | |
| Amlgraph | El almacenamiento de la tabla múltiple adyacente del gráfico | Gráfico no dirigido, red no dirigida | ||
| Spanningtree | Árbol de gráficos no dirigidos | 7.7, 7.8 | Sr. Deep excelente para convertirse en un árbol | |
| Componentes fuertemente conectados | Gráfico dirigido componentes de conectividad fuertes | Algoritmo Kosaraju y algoritmo de Tarjan | ||
| Minimumspanningtree | Árbol de expansión mínimo para redes no dirigidas | 7.9 | Algoritmo Prim y Algoritmo Kruskal | |
| Puntos de artículo | Los nodos del gráfico no dirigido | 7.10, 7.11 | ||
| Topológico | Clasificación topológica de redes AOV | 7.12 | Gráfico dirigido | |
| CriticalPathMethod | El camino clave para la red Aoe | 7.13, 7.14 | Red dirigida | |
| Shortestpaths | Algoritmo de ruta más corto | 7.15, 7.16 | Algoritmo Dijkstra y algoritmo Floyd | |
| 08 Gestión de almacenamiento dinámico | Bordarytagmethod | Método de identificación de límites | 8.1 | |
| Buddisistema | Sistema asociado | 8.2 | ||
| Selección de barbages | Colección de unidades inútiles | 8.3 | Mesa generalizada transversal |