Le code source de ce projet est équipé du manuel " Data Structure-C Language Edition " [Yan Weimin, Wu Weimin Edition] et " Data Structure Question Collection - C Edition Language " [Yan Weimin, Wu Weimin, Mining Edition].
| Manuel de structure de données | Ensemble de questions de structure de données |
|---|---|
![]() | ![]() |
Ce projet comprend le code source du manuel et le code source d'exercice , et est divisé en 4 versions, à savoir: CFREE , Dev-C ++ , Clion et VisualC ++ , parmi lesquelles:
Choix d'IDE
Cfree est un excellent logiciel national. Cependant, le produit est interrompu depuis longtemps, et il y a des problèmes de compatibilité sur Win10 et doit être ajusté.
Dev-C ++ est un logiciel open source qui est aussi petit et pratique que CFREE. La chose la plus importante est qu'elle est compatible avec Win10 et est recommandée.
Clion nécessite un peu de connaissance de CMake et nécessite des exigences de performance légèrement plus élevées pour les cahiers. Cependant, les produits de la série Jetbrains ont d'excellentes fonctions et sont fortement recommandés pour les essayer.
Microsoft Visual C ++ est produit par Microsoft. Si vous ne prenez pas C / C ++ / C # et d'autres itinéraires à l'avenir, vous ne pouvez pas les utiliser en premier. (Remarque: Depuis 2018, VC ++ 6 a été remplacé par Microsoft Visual C ++ 2010 au deuxième niveau de l'examen du langage C ordinateur. Donc, si vous avez des besoins de classement, veuillez vous familiariser avec cet IDE)
L' analyse des questions non code dans la "collecte de questions de structure de données" est stockée dans l'analyse de l' exercice .
注:
1. "CFree"是完整版本。"Dev-C++"/"CLion"/"VisualC++"是新增的版本,这三个版本最终会取代"CFree"版本。
2. "CFree"版本既可以用CFree直接打开,也支持用Dev-C++打开,所以当使用CFree遇到兼容问题时,可尝试用Dev-C++。
3. 上述四个版的代码是同步更新的,但是各版本之间相互独立,没有任何依赖关系,允许单独运行/测试。
4. 对所有版本的代码均未充分测试,尤其是很多代码没有完成的边界检查(原因是此处以实现算法正确性为目的,而较少考虑程序的健壮性),所以如有BUG请到Issues反馈。
L'objectif global est d'assurer l'exactitude, d'améliorer la lisibilité et de réduire les difficultés d'apprentissage.
Après le clonage / télécharger le code source dans la région, vous pouvez afficher les fichiers ReadMe dans chaque branche pour obtenir des informations d'aide

| Numéro de série | emoji | Signification dans ce projet | Marque d'abréviation |
|---|---|---|---|
| (0) | ? | Initialiser le projet | :tada: |
| (1) | Mettre à jour la documentation, y compris, mais sans s'y limiter, Readme | :memo: | |
| (2) | Libérez un nouveau code source | :bulb: | |
| (3) | ♻️ | Le refactorisation se réfère principalement à la modification du code source existant et des commentaires | :recycle: |
| (4) | ✏️ | La relecture se réfère principalement à la correction des fautes de frappe, à la modification de la disposition du code source, à la mise à jour des commentaires, etc. | :pencil2: |
| (5) | ? | Correction des bogues dans le code | :bug: |
Blog personnel
Source de référence emoji dans les informations de validation:
| chapitre | Festival | contenu | Comprend l'algorithme | Remarque |
|---|---|---|---|---|
| 01 Introduction | Statut | Définissez certaines constantes et fonctions partagées | ||
| 02 table linéaire | Sqlist | Table de séquence | 2.3, 2.4, 2,5, 2,6 | Structure de stockage séquentielle des tables linéaires |
| Union | A = a∪b | 2.1 | ||
| Mergesqlist | C = a + b | 2.2, 2.7 | Table de commandes de fusion | |
| Linklist | Liste de liens | 2.8, 2.9, 2.10, 2.11 | Structure de stockage de chaîne des tables linéaires | |
| Fusion | C = a + b | 2.12 | Liste des liens de fusion | |
| Lisge | Liste liée statique | 2.13, 2.14, 2.15, 2.16 | ||
| Différence | (Ab) ∪ (ba) | 2.17 | ||
| Dulinklist | Liste des liens de boucle bidirectionnelle | 2.18, 2.19 | ||
| Lilinklist | Liste des liens linéaires étendus | 2.20 | ||
| Fusion | C = a + b | 2.21 | Liste des liens linéaires combinés et étendus | |
| Polynôme | Polynôme unidirectionnel | 2.22, 2.23 | ||
| 03 pile et file d'attente | Sqstack | Empiler | Structure de stockage séquentielle | |
| Conversion | Conversion prioritaire | 3.1 | Application de pile | |
| Lineedit | Programme d'édition de ligne | 3.2 | Application de pile | |
| Labyrinthe | Maze Way de trouver | 3.3 | Application de pile | |
| Expression | Évaluation de l'expression | 3.4 | Application de pile | |
| Hanoi | Tour de Hannor | 3.5 | récursivité | |
| Linkqueue | Colonne de chaîne | Structure de stockage de la chaîne | ||
| Sququeue | File d'attente séquentielle | File d'attente en boucle, structure de stockage séquentielle | ||
| Bankqueuing | Simuler la file d'attente de banque | 3.6, 3.7 | Demande de file d'attente | |
| 04 chaîne | Sstring | Chaîne de séquence | 4.1, 4.2, 4.3, 4.5 | Stockage séquentiel |
| Hstring | Chaîne de tas | 4.4 | Stockage séquentiel, allocation dynamique de la mémoire | |
| Lstring | Chaîne de blockchain | Stockage séquentiel + stockage de chaîne | ||
| KMP | Algorithme KMP | 4.6, 4.7, 4.8 | Algorithme de correspondance de chaîne | |
| Liste de mots | Index des mots clés | 4.9, 4.10, 4.11, 4.12, 4.13, 4.14 | Application des chaînes de tas et des tables linéaires | |
| 05 tableaux et tables généralisées | Tableau | Tableau multidimensionnel | ||
| Tsmatrix | Matrice clairsemée | 5.1, 5.2 | Comment stocker des tables de commande à triple | |
| RlsMatrix | Matrice clairsemée | 5.3 | Comment stocker la table de commande des liens logiques en ligne | |
| Mettre la liste | Matrice clairsemée | 5.4 | Méthode de stockage de la liste des listes de réticulation | |
| Glist-ht | Table généralisée | 5.5, 5.6, 5.7, 5.8 | Représentation de stockage de la liste des liens de tête et de queue | |
| Glist-e | Table généralisée | Représentation de stockage linéaire étendu linéaire | ||
| Mplist | Polynomial M-Part | Stockage de chaîne | ||
| 06 arbre et arbre binaire | Sqbitree | Structure de stockage séquentielle de l'arbre binaire | ||
| Bitree | Structure de stockage de liste liée binaire de l'arbre binaire | 6.1, 6.2, 6.3, 6.4 | ||
| Bitritree | La structure de stockage de liste liée à trois trimestres de l'arbre binaire | |||
| Bithrtree | Indice binaire | 6.5, 6.6, 6.7 | ||
| Ptree | La représentation de stockage de la table parent de l'arbre | |||
| Ctree | La représentation du stockage de la liste liée des enfants de l'arbre (avec les parents) | |||
| Cstree | Représentation du stockage de structure lié à la liste binaire de l'arbre (Childre-Brother) | |||
| Mfset | rassembler | 6.8, 6.9, 6.10, 6.11 | ||
| Huffmantree | Arbre Huffman | 6.12, 6.13 | Également connu sous le nom de "Hafman Tree" | |
| Pouvoir | Collection | 6.14 / 6.15 | ||
| Nqueens | N Problème de la reine | 6.16 | ||
| 07 image | Mgraph | Le stockage de la matrice d'adjacence du graphique | 7.1, 7.2, 7,4, 7,5, 7.6 | Graphique dirigé, réseau dirigé, graphique non dirigée, réseau non dirigé |
| Algraph | Le stockage de table adjacent du graphique | Graphique dirigé, réseau dirigé, graphique non dirigée, réseau non dirigé | ||
| Olgraph | Le stockage de la liste de réticulation du diagramme | 7.3 | Graphique dirigé, réseau dirigé, graphique non dirigée, réseau non dirigé | |
| Amlgraph | Le stockage de table multiple adjacent du graphique | Graphique non dirigée, réseau non dirigé | ||
| Coulant | Arbre couvrant des graphiques non dirigés | 7.7, 7.8 | M. Deep excellent pour devenir un arbre | |
| Composants fortementconnectés | Graphique réalisé des composants de connectivité solides | Algorithme de kosaraju et algorithme de tarjan | ||
| Minimumspanningtree | Arbre couvrant minimum pour les réseaux non dirigés | 7.9 | Algorithme prim et algorithme de Kruskal | |
| Point de vue | Les nœuds du graphique non dirigé | 7.10, 7.11 | ||
| Sortie topologique | Tri topologique du réseau AOV | 7.12 | Graphique dirigé | |
| Critique de la critique | Le chemin clé de la réseaux AoE | 7.13, 7.14 | Réseau ciblé | |
| Les plus courts | Algorithme de chemin le plus court | 7.15, 7.16 | Algorithme Dijkstra et algorithme Floyd | |
| 08 Gestion du stockage dynamique | Boundarytagmethod | Méthode d'identification des limites | 8.1 | |
| Buddyssystem | Système partenaire | 8.2 | ||
| Garbagecellection | Collection d'unité inutile | 8.3 | Table de traversée généralisée sans pile |