Der Quellcode in diesem Projekt ist mit dem Lehrbuch " Datenstruktur -C -Sprachausgabe " [Yan Weiman, Wu Weimin Edition] und " Data Structure Question Collection - C Language Edition " [Yan Weieinin, Wu Weimin, Mining Edition] ausgestattet.
| Datenstruktur Lehrbuch | Datenstrukturfragen festgelegt |
|---|---|
![]() | ![]() |
Dieses Projekt enthält den Lehrbuch-Quellcode und den Quellcode für Übungsquellen und ist in 4 Versionen unterteilt, nämlich: CFREE , Dev-C ++ , Clion und VisualC ++ , darunter:
Wahl der Ide
CFREE ist eine hervorragende Inlandssoftware. Das Produkt wurde jedoch lange Zeit eingestellt, und es gibt einige Kompatibilitätsprobleme bei Win10 und müssen angepasst werden.
Dev-C ++ ist eine Open-Source-Software, die so klein und praktisch ist wie cfree. Das Wichtigste ist, dass es mit Win10 kompatibel ist und empfohlen wird.
Clion benötigt ein wenig Kenntnis von CMake und benötigt für Notebooks etwas höhere Leistungsanforderungen. Die Produkte der JetBrains Series haben jedoch hervorragende Funktionen und werden dringend empfohlen, sie auszuprobieren.
Microsoft Visual C ++ wird von Microsoft produziert. Wenn Sie in Zukunft keine C/C ++/C# und andere Routen einnehmen, können Sie sie nicht zuerst verwenden. (Hinweis: Seit 2018 wurde VC ++ 6 in der zweiten Ebene der Computer -C -Sprachprüfung durch Microsoft Visual C ++ 2010 ersetzt. Wenn Sie also Bewertungsanforderungen haben, machen Sie sich bitte mit dieser IDE vertraut.)
Die Analyse von Nicht-Code-Fragen in der " Datenstruktur - Frage - Sammlung" wird in der Übungsanalyse gespeichert.
注:
1. "CFree"是完整版本。"Dev-C++"/"CLion"/"VisualC++"是新增的版本,这三个版本最终会取代"CFree"版本。
2. "CFree"版本既可以用CFree直接打开,也支持用Dev-C++打开,所以当使用CFree遇到兼容问题时,可尝试用Dev-C++。
3. 上述四个版的代码是同步更新的,但是各版本之间相互独立,没有任何依赖关系,允许单独运行/测试。
4. 对所有版本的代码均未充分测试,尤其是很多代码没有完成的边界检查(原因是此处以实现算法正确性为目的,而较少考虑程序的健壮性),所以如有BUG请到Issues反馈。
Das Gesamtziel ist es, die Korrektheit zu gewährleisten, die Lesbarkeit zu verbessern und die Lernschwierigkeiten zu verringern.
Nach dem Klonen/Herunterladen des Quellcode in den lokalen Bereich können Sie die ReadMe -Dateien in jeder Filiale anzeigen, um Hilfeinformationen zu erhalten

| Seriennummer | Emoji | Bedeutung in diesem Projekt | Abkürzung Mark |
|---|---|---|---|
| (0) | ? | Initialisieren Sie das Projekt | :tada: |
| (1) | Aktualisieren Sie die Dokumentation, einschließlich, aber nicht beschränkt auf Readme | :memo: | |
| (2) | Neuen Quellcode veröffentlichen | :bulb: | |
| (3) | ♻️ | Refactoring bezieht sich hauptsächlich auf die Änderung vorhandener Quellcode und Kommentare | :recycle: |
| (4) | ✏️ | Das Korrekturlesen bezieht sich hauptsächlich auf die Korrektur von Tippfehler, das Ändern von Quellcode -Layout, Aktualisierung von Kommentaren usw. | :pencil2: |
| (5) | ? | Beheben Sie Fehler im Code | :bug: |
Persönlicher Blog
Quelle der emoji -Referenz in Commit -Informationen:
| Kapitel | Festival | Inhalt | Beinhaltet Algorithmus | Bemerkung |
|---|---|---|---|---|
| 01 Einführung | Status | Definieren Sie einige gemeinsame Konstanten und Funktionen | ||
| 02 Lineare Tabelle | SQLIST | Sequenztabelle | 2,3, 2,4, 2,5, 2,6 | Sequentielle Speicherstruktur der linearen Tabellen |
| Union | A = a∪b | 2.1 | ||
| Mergesqlist | C = a+b | 2.2, 2.7 | Bestellentabelle zusammenführen | |
| LinkList | Linkliste | 2,8, 2,9, 2,10, 2.11 | Kettenspeicherstruktur von linearen Tabellen | |
| Mergelist | C = a+b | 2.12 | Linkliste zusammenführen | |
| SlinkList | Statische verlinkte Liste | 2,13, 2,14, 2,15, 2.16 | ||
| Unterschied | (Ab) ∪ (ba) | 2.17 | ||
| DulinkList | Bidirektionale Schleifenverbindungsliste | 2.18, 2.19 | ||
| ElinkList | Erweiterte lineare Linkliste | 2.20 | ||
| Mergeelist | C = a+b | 2.21 | Kombinierte und erweiterte lineare Linkliste | |
| Polynom | Einweg-Polynom | 2.22, 2.23 | ||
| 03 Stack und Warteschlange | Sqstack | Stapel | Sequentielle Speicherstruktur | |
| Konvertierung | Prioritätsumwandlung | 3.1 | Stapelanwendung | |
| Lineedit | Leitungsbearbeitungsprogramm | 3.2 | Stapelanwendung | |
| Labyrinth | Maze -Weg zu finden | 3.3 | Stapelanwendung | |
| Ausdruck | Ausdrucksbewertung | 3.4 | Stapelanwendung | |
| Hanoi | Turm von Hannor | 3.5 | Rekursion | |
| Linkqueue | Kettensäule | Kettenlagerstruktur | ||
| Sqqueue | Sequentielle Warteschlange | Schleifenwarteschlange, sequentielle Speicherstruktur | ||
| Bankqueuch | Simulation der Bankwarteschlange | 3.6, 3.7 | Warteschlangenanwendung | |
| 04 Zeichenfolge | SSTRING | Sequenzzeichenfolge | 4,1, 4,2, 4,3, 4,5 | Sequentielle Speicherung |
| Hstring | Heap -Zeichenfolge | 4.4 | Sequentielle Speicherung, dynamische Zuordnung des Speichers | |
| Lstring | Blockchain -Zeichenfolge | Sequentielle Speicherung + Kettenspeicher | ||
| KMP | KMP -Algorithmus | 4.6, 4,7, 4.8 | String -Matching -Algorithmus | |
| Wortliste | Schlüsselwortindex | 4,9, 4.10, 4.11, 4.12, 4,13, 4,14 | Anwendung von Haufen Strings und linearen Tabellen | |
| 05 Arrays und verallgemeinerte Tische | Array | Mehrdimensionales Array | ||
| Tsmatrix | Spärliche Matrix | 5.1, 5.2 | So speichern Sie dreifache Bestellentische | |
| Rlsmatrix | Spärliche Matrix | 5.3 | So speichern Sie die Bestellentabelle der Zeilen logischen Links | |
| Kreuzliste | Spärliche Matrix | 5.4 | Cross-Link List-Speichermethode | |
| Glisten-Ht | Verallgemeinerte Tabelle | 5,5, 5,6, 5,7, 5,8 | Speicherdarstellung der Kopf- und Heckverbindungsliste | |
| Glisten-e | Verallgemeinerte Tabelle | Erweiterte lineare gelinkte Listspeicherdarstellung | ||
| Mplist | M-Part-Polynom | Kettenspeicher | ||
| 06 Baum und binärer Baum | Sqbitree | Binärbaum sequentielle Speicherstruktur | ||
| Bitree | Binärverknüpfte Listenspeicherstruktur von Binärbaum | 6.1, 6.2, 6.3, 6.4 | ||
| Bitritree | Die drei Viertel verknüpfte Listspeicherstruktur von Binärbaum | |||
| Bithrtree | Hinweis binärer Baum | 6,5, 6,6, 6,7 | ||
| Ptree | Die übergeordnete Tabellenspeicherdarstellung des Baumes | |||
| Ctree | Die Speicherdarstellung der verknüpften Liste der Kinder des Baumes (mit Eltern) | |||
| Cstree | Die Binary Linked List (Children-Brother) Strukturspeicherdarstellung des Baums | |||
| Mfset | versammeln | 6.8, 6.9, 6.10, 6.11 | ||
| Huffmantree | Huffman -Baum | 6.12, 6.13 | Auch als "Hafman Tree" bekannt | |
| Poweret | Sammlung | 6.14/6.15 | ||
| Nqueens | N Königinproblem | 6.16 | ||
| 07 Bild | MGRAPH | Die Adjazenzmatrixspeicherung des Diagramms | 7.1, 7,2, 7.4, 7,5, 7,6 | Regie Graph, Cirected Network, Underrectected Graph, Underrectected Network |
| Algraph | Die angrenzende Tabellenspeicherung des Diagramms | Regie Graph, Cirected Network, Underrectected Graph, Underrectected Network | ||
| Olgraph | Die Speicher der Cross-Link-Liste des Diagramms | 7.3 | Regie Graph, Cirected Network, Underrectected Graph, Underrectected Network | |
| Amlgraph | Die angrenzende Speicher mehrerer Tabellenspeicher des Diagramms | Ungerichtete Grafik, ungerichtes Netzwerk | ||
| SpanningTree | Spannungsbaum ungerichteter Graphen | 7.7, 7.8 | Mr. Deep Excellent, um ein Baum zu werden | |
| Stark konnectedComponents | Regie Graph Starke Konnektivitätskomponenten | Kosaraju -Algorithmus und Tarjan -Algorithmus | ||
| MinimumspanningTree | Minimum Spanning Tree für ungerichtete Netzwerke | 7.9 | Primalgorithmus und Kruskalalgorithmus | |
| Artikelpunkte | Die Knoten des ungerichteten Graphen | 7.10, 7.11 | ||
| TopologicalSorting | Topologische Sortierung von AOV-Netzwerk | 7.12 | Regie Graph | |
| Kritischer Pathemethod | Der Schlüsselweg zu Aoe-Network | 7.13, 7.14 | Gezielter Netzwerk | |
| Kürzeste Pflege | Kürzester Pfadalgorithmus | 7.15, 7.16 | Dijkstra -Algorithmus und Floyd -Algorithmus | |
| 08 Dynamisches Speichermanagement | Grenztagmethod | Grenzidentifikationsmethode | 8.1 | |
| Buddysystem | Partnersystem | 8.2 | ||
| Garbagecollection | Nutzlose Einheitensammlung | 8.3 | Stackloser Traversal Generalized Tisch |