O código -fonte deste projeto está equipado com o livro " Data Structure -C Language Edition " [Yan Weimin, Wu Weimin Edition] e " Coleção de perguntas da estrutura de dados - C Edição de idiomas " [Yan Weimin, Wu Weimin, edição de mineração].
| Livro didático da estrutura de dados | Conjunto de perguntas da estrutura de dados |
|---|---|
![]() | ![]() |
Este projeto inclui o código-fonte do livro didático e o código-fonte do exercício , e é dividido em 4 versões, a saber: cfree , Dev-C ++ , Clion e Visualc ++ , entre os quais:
Escolha do IDE
O CFREE é um excelente software doméstico. No entanto, o produto foi descontinuado há muito tempo e há alguns problemas de compatibilidade no Win10 e precisa ser ajustado.
O Dev-C ++ é um software de código aberto tão pequeno e prático quanto o CFree. O mais importante é que é compatível com o Win10 e é recomendado.
Clion requer um pouco de conhecimento de cmake e requer requisitos de desempenho um pouco mais altos para notebooks. No entanto, os produtos da série JetBrains têm excelentes funções e são altamente recomendados para experimentá -los.
O Microsoft Visual C ++ é produzido pela Microsoft. Se você não tomar C/C ++/C# e outras rotas no futuro, não poderá usá -las primeiro. (Nota: Desde 2018, o VC ++ 6 foi substituído pelo Microsoft Visual C ++ 2010 no segundo nível do Exame de Linguagem do Computador C. Portanto, se você tiver necessidades de classificação, familiarize -se com este IDE)
A análise de perguntas não-código na "coleta de perguntas da estrutura de dados" é armazenada na análise do exercício .
注:
1. "CFree"是完整版本。"Dev-C++"/"CLion"/"VisualC++"是新增的版本,这三个版本最终会取代"CFree"版本。
2. "CFree"版本既可以用CFree直接打开,也支持用Dev-C++打开,所以当使用CFree遇到兼容问题时,可尝试用Dev-C++。
3. 上述四个版的代码是同步更新的,但是各版本之间相互独立,没有任何依赖关系,允许单独运行/测试。
4. 对所有版本的代码均未充分测试,尤其是很多代码没有完成的边界检查(原因是此处以实现算法正确性为目的,而较少考虑程序的健壮性),所以如有BUG请到Issues反馈。
O objetivo geral é garantir a correção, melhorar a legibilidade e reduzir a dificuldade de aprendizado.
Depois de clonar/baixar o código -fonte para a área local, você pode ver os arquivos ReadMe em cada ramificação para obter informações de ajuda

| Número de série | Emoji | Significado neste projeto | Marca de abreviação |
|---|---|---|---|
| (0) | ? | Inicialize o projeto | :tada: |
| (1) | Atualize a documentação, incluindo, entre outros | :memo: | |
| (2) | Libere um novo código fonte | :bulb: | |
| (3) | ♻️ | A refatoração refere -se principalmente à modificação do código -fonte e dos comentários existentes | :recycle: |
| (4) | ✏️ | Revisão refere -se principalmente à correção de erros de digitação, modificando o layout do código -fonte, atualizando comentários, etc. | :pencil2: |
| (5) | ? | Corrija bugs no código | :bug: |
Blog pessoal
Fonte de referência emoji em informações de comprometimento:
| capítulo | Festival | contente | Inclui algoritmo | Observação |
|---|---|---|---|---|
| 01 Introdução | Status | Defina algumas constantes e funções compartilhadas | ||
| 02 Tabela linear | SQLIST | Tabela de sequência | 2.3, 2.4, 2,5, 2.6 | Estrutura de armazenamento seqüencial de tabelas lineares |
| União | A = a∪b | 2.1 | ||
| Mergesqlist | C = a+b | 2.2, 2.7 | Tabela de pedidos de mesclagem | |
| Linklist | Lista de links | 2.8, 2.9, 2.10, 2.11 | Estrutura de armazenamento em cadeia de tabelas lineares | |
| Mergelist | C = a+b | 2.12 | Merge Link List | |
| Slinklist | Lista estática vinculada | 2.13, 2.14, 2.15, 2.16 | ||
| Diferença | (AB) ∪ (BA) | 2.17 | ||
| Dulinklist | Lista de links de loop bidirecional | 2.18, 2.19 | ||
| Elinklist | Lista de links lineares estendidos | 2.20 | ||
| Mergeelista | C = a+b | 2.21 | Lista de links lineares combinados e estendidos | |
| Polinomial | Polinomial unidirecional | 2.22, 2.23 | ||
| 03 Pilha e fila | Sqstack | Pilha | Estrutura de armazenamento seqüencial | |
| Conversão | Conversão prioritária | 3.1 | Aplicação de pilha | |
| Lineedit | Programa de edição de linha | 3.2 | Aplicação de pilha | |
| Labirinto | MAZE MUITO PARA ENCONTRAR | 3.3 | Aplicação de pilha | |
| Expressão | Avaliação da expressão | 3.4 | Aplicação de pilha | |
| Hanói | Torre de Hannor | 3.5 | Recursão | |
| Linkqueue | Coluna de cadeia | Estrutura de armazenamento em cadeia | ||
| Sqqueue | Fila seqüencial | Fila de loop, estrutura de armazenamento seqüencial | ||
| Bankqueing | Simular a fila do banco | 3.6, 3.7 | Aplicação da fila | |
| 04 String | SString | String de sequência | 4.1, 4.2, 4.3, 4.5 | Armazenamento seqüencial |
| HSTRING | String de heap | 4.4 | Armazenamento seqüencial, alocação dinâmica de memória | |
| LString | String blockchain | Armazenamento seqüencial + armazenamento em cadeia | ||
| KMP | Algoritmo KMP | 4.6, 4.7, 4.8 | Algoritmo de correspondência de string | |
| Lista de palavras | Índice de palavras -chave | 4.9, 4.10, 4.11, 4.12, 4.13, 4.14 | Aplicação de cordas de heap e tabelas lineares | |
| 05 matrizes e mesas generalizadas | Variedade | Array multidimensional | ||
| Tsmatrix | Matriz esparsa | 5.1, 5.2 | Como armazenar tabelas de pedidos triplos | |
| Rlsmatrix | Matriz esparsa | 5.3 | Como armazenar a tabela de pedidos de links lógicos de linha | |
| Lista transversal | Matriz esparsa | 5.4 | Método de armazenamento da lista de ligação cruzada | |
| Glist-ht | Tabela generalizada | 5.5, 5.6, 5.7, 5.8 | Representação de armazenamento da lista de links de cabeça e cauda | |
| Glist-e | Tabela generalizada | Representação de armazenamento linear de lista linear estendida | ||
| Mplist | Polinomial m-parta | Armazenamento em cadeia | ||
| 06 árvore e árvore binária | Sqbitree | Estrutura de armazenamento seqüencial de árvore binária | ||
| Rree de bit | Estrutura de armazenamento de lista vinculada binária da árvore binária | 6.1, 6.2, 6.3, 6.4 | ||
| Bitritree | A estrutura de armazenamento da lista vinculada de três quartos da árvore binária | |||
| Bithrtree | Árvore binária da pista | 6.5, 6.6, 6.7 | ||
| PTree | A representação de armazenamento da mesa pai da árvore | |||
| Ctree | A representação de armazenamento da lista vinculada das crianças da árvore (com os pais) | |||
| CSTEE | A LISTA BINÁRIA BINARIA DA Árvore (Children-Brother) Representação de armazenamento | |||
| Mfset | juntar | 6.8, 6.9, 6.10, 6.11 | ||
| Huffmantree | Árvore do Huffman | 6.12, 6.13 | Também conhecido como "Hafman Tree" | |
| Powerset | Coleção | 6.14/6.15 | ||
| NQueens | N problema da rainha | 6.16 | ||
| 07 foto | Mgraph | O armazenamento da matriz adjacência do gráfico | 7.1, 7.2, 7.4, 7.5, 7.6 | Gráfico direcionado, rede direcionada, gráfico não direcionado, rede não direcionada |
| Algraph | O armazenamento de tabela adjacente do gráfico | Gráfico direcionado, rede direcionada, gráfico não direcionado, rede não direcionada | ||
| Olgraph | A lista de ligação cruzada armazenamento do diagrama | 7.3 | Gráfico direcionado, rede direcionada, gráfico não direcionado, rede não direcionada | |
| Amlgraph | O armazenamento de tabela múltipla adjacente do gráfico | Gráfico não direcionado, rede não direcionada | ||
| Spanningtree | Árvore abrangendo de gráficos não direcionados | 7.7, 7.8 | Sr. Deep Excelente para se tornar uma árvore | |
| Componentes fortementeconizados | Gráfico direcionado componentes de conectividade fortes | Algoritmo Kosaraju e algoritmo Tarjan | ||
| Minimumspanningtree | Árvore de abrangência mínima para redes não direcionadas | 7.9 | Algoritmo primário e algoritmo Kruskal | |
| ArtigoPoints | Os nós do gráfico não direcionado | 7.10, 7.11 | ||
| TopologicalSorting | Classificação topológica da rede AOV | 7.12 | Gráfico direcionado | |
| CriticalPathMethod | O caminho principal para a rede de rede | 7.13, 7.14 | Rede direcionada | |
| Mais curtos | Algoritmo de caminho mais curto | 7.15, 7.16 | Algoritmo de dijkstra e algoritmo floyd | |
| 08 Gerenciamento de armazenamento dinâmico | BoundaryTagMethod | Método de identificação de limites | 8.1 | |
| BudySystem | Sistema de parceiros | 8.2 | ||
| GarbagCollection | Coleção inútil de unidades | 8.3 | Tabela generalizada de travessia sem pilha |