このプロジェクトのソースコードには、教科書「 Data Structure -C Languales Edition 」[Yan Weimin、Wu Weimin Edition]と「 Data Structure Question Collection -C Language Edition 」[Yan Weimin、Wu Weimin、Mining Edition]が搭載されています。
| データ構造の教科書 | データ構造の質問設定 |
|---|---|
![]() | ![]() |
このプロジェクトには、教科書ソースコードとエクササイズソースコードが含まれており、4つのバージョン、つまり、 cfree 、 dev-c ++ 、 clion 、およびvisualc ++などに分かれています。
IDEの選択
Cfreeは優れた国内ソフトウェアですが、初心者には非常に適しています。ただし、製品は長い間中止されており、Win10には互換性の問題がいくつかあり、調整する必要があります。
dev-c ++は、freeと同じくらい小さく実用的なオープンソースソフトウェアです。最も重要なことは、Win10と互換性があり、推奨されることです。
ClionはCmakeのわずかな知識を必要とし、ノートブックのパフォーマンス要件をわずかに高くする必要があります。ただし、JetBrainsシリーズ製品には優れた機能があり、試してみることを強くお勧めします。
Microsoft Visual C ++はMicrosoftによって生産されていますが、このシリーズは最も強力な表面として知られていますが、初心者にも友好的ではなく、辛抱強く考える必要があります。将来、C/C ++/C#やその他のルートを服用しない場合、最初に使用することはできません。 (注:2018年以降、VC ++ 6は、コンピューターC言語試験の第2レベルでMicrosoft Visual C ++ 2010に置き換えられています。
「データ構造の質問コレクション」の非コード質問の分析は、コードを書くことで解決する必要がある問題については、 Dev-C ++ 、 Clion 、およびVisualC ++のソースコードを参照してください。
注:
1. "CFree"是完整版本。"Dev-C++"/"CLion"/"VisualC++"是新增的版本,这三个版本最终会取代"CFree"版本。
2. "CFree"版本既可以用CFree直接打开,也支持用Dev-C++打开,所以当使用CFree遇到兼容问题时,可尝试用Dev-C++。
3. 上述四个版的代码是同步更新的,但是各版本之间相互独立,没有任何依赖关系,允许单独运行/测试。
4. 对所有版本的代码均未充分测试,尤其是很多代码没有完成的边界检查(原因是此处以实现算法正确性为目的,而较少考虑程序的健壮性),所以如有BUG请到Issues反馈。
全体的な目標は、正しさを確保し、読みやすさを改善し、具体的には次のポイントを削減することです。
ソースコードをローカルエリアにクローニング/ダウンロードした後、各ブランチのreadmeファイルを表示してヘルプ情報を取得できます

| シリアルナンバー | 絵文字 | このプロジェクトの意味 | 略語マーク |
|---|---|---|---|
| (0) | ? | プロジェクトを初期化します | :tada: |
| (1) | readmeを含むがこれらに限定されないドキュメントを更新します | :memo: | |
| (2) | 新しいソースコードをリリースします | :bulb: | |
| (3) | ♻♻️ | リファクタリングは、主に既存のソースコードとコメントの変更を指します | :recycle: |
| (4) | ✏✏️ | 校正とは、主にタイプミスの修正、ソースコードレイアウトの変更、コメントの更新などを指します。 | :pencil2: |
| (5) | ? | コードのバグを修正します | :bug: |
個人的なブログ
コミット情報のemojiリファレンスのソース:
| 章 | フェスティバル | コンテンツ | アルゴリズムが含まれています | 述べる |
|---|---|---|---|---|
| 01はじめに | 状態 | いくつかの共有定数と関数を定義します | ||
| 02線形テーブル | sqlist | シーケンステーブル | 2.3、2.4、2.5、2.6 | 線形テーブルのシーケンシャルストレージ構造 |
| 連合 | a =a∪b | 2.1 | ||
| mergesqlist | c = a+b | 2.2、2.7 | 注文テーブルをマージします | |
| LinkList | リンクリスト | 2.8、2.9、2.10、2.11 | 線形テーブルのチェーンストレージ構造 | |
| 合併 | c = a+b | 2.12 | リンクリストをマージします | |
| スリンクリスト | 静的リンクリスト | 2.13、2.14、2.15、2.16 | ||
| 違い | (ab)∪(ba) | 2.17 | ||
| DulinkList | 双方向ループリンクリスト | 2.18、2.19 | ||
| ElinkList | 拡張線形リンクリスト | 2.20 | ||
| マージーリスト | c = a+b | 2.21 | 組み合わせおよび拡張線形リンクリスト | |
| 多項式 | 一方向多項式 | 2.22、2.23 | ||
| 03スタックとキュー | sqstack | スタック | シーケンシャルストレージ構造 | |
| 変換 | 優先度変換 | 3.1 | スタックアプリケーション | |
| Linesedit | ライン編集プログラム | 3.2 | スタックアプリケーション | |
| 迷路 | 見つけるための迷路の方法 | 3.3 | スタックアプリケーション | |
| 表現 | 発現評価 | 3.4 | スタックアプリケーション | |
| ハノイ | ハノールの塔 | 3.5 | 再帰 | |
| linkqueue | チェーンコラム | チェーンストレージ構造 | ||
| sqqueue | シーケンシャルキュー | ループキュー、シーケンシャルストレージ構造 | ||
| バンクキューイング | 銀行のキューをシミュレートします | 3.6、3.7 | キューアプリケーション | |
| 04文字列 | sString | シーケンス文字列 | 4.1、4.2、4.3、4.5 | シーケンシャルストレージ |
| hstring | ヒープストリング | 4.4 | シーケンシャルストレージ、メモリの動的割り当て | |
| lstring | ブロックチェーン文字列 | シーケンシャルストレージ +チェーンストレージ | ||
| KMP | KMPアルゴリズム | 4.6、4.7、4.8 | 文字列マッチングアルゴリズム | |
| ワードリスト | キーワードインデックス | 4.9、4.10、4.11、4.12、4.13、4.14 | ヒープ弦と線形テーブルの適用 | |
| 05アレイと一般化されたテーブル | 配列 | 多次元配列 | ||
| tsmatrix | スパースマトリックス | 5.1、5.2 | トリプルオーダーテーブルを保存する方法 | |
| rlsmatrix | スパースマトリックス | 5.3 | 行の注文表を保存する方法論理リンク | |
| クロスリスト | スパースマトリックス | 5.4 | クロスリンクリストストレージ方法 | |
| glist-ht | 一般化されたテーブル | 5.5、5.6、5.7、5.8 | ヘッドおよびテールリンクリストストレージ表現 | |
| Glist-E | 一般化されたテーブル | 拡張線形リンクリストストレージ表現 | ||
| mplist | M部分の多項式 | チェーンストレージ | ||
| 06ツリーとバイナリツリー | sqbitree | バイナリツリーシーケンシャルストレージ構造 | ||
| ビトリー | バイナリリンクリストのバイナリツリーのストレージ構造 | 6.1、6.2、6.3、6.4 | ||
| ビットリトリー | バイナリツリーの4分の3リンクリストストレージ構造 | |||
| ビットツリー | 手がかりのバイナリツリー | 6.5、6.6、6.7 | ||
| Ptree | ツリーの親テーブルストレージ表現 | |||
| ctree | 木の子供のリンクされたリストのストレージ表現(親と) | |||
| CSTREE | ツリーのバイナリリンクリスト(子供兄弟)構造ストレージ表現 | |||
| mfset | 集める | 6.8、6.9、6.10、6.11 | ||
| ハフマンリー | ハフマンツリー | 6.12、6.13 | 「ハフマンツリー」としても知られています | |
| パワーセット | コレクション | 6.14/6.15 | ||
| nqueens | nクイーンの問題 | 6.16 | ||
| 07写真 | mgraph | グラフの隣接マトリックスストレージ | 7.1、7.2、7.4、7.5、7.6 | 指向グラフ、指示ネットワーク、無向グラフ、無向ネットワーク |
| アルグラフ | グラフの隣接するテーブルストレージ | 指向グラフ、指示ネットワーク、無向グラフ、無向ネットワーク | ||
| オルグラフ | 図のクロスリンクリストストレージ | 7.3 | 指向グラフ、指示ネットワーク、無向グラフ、無向ネットワーク | |
| amlgraph | グラフの隣接する複数のテーブルストレージ | 無向グラフ、無向ネットワーク | ||
| スパニングツリー | 無向グラフのスパニングツリー | 7.7、7.8 | ディープ氏は木になるのに優れています | |
| 強い結合コンポーネント | 指向グラフ強い接続コンポーネント | KosarajuアルゴリズムとTarjanアルゴリズム | ||
| MinimumSpanningTree | 無向ネットワークの最小スパニングツリー | 7.9 | プリムアルゴリズムとクラスカルアルゴリズム | |
| 記事ポイント | 無向グラフのノード | 7.10、7.11 | ||
| トポロジカル化 | AOVネットワークのトポロジーソート | 7.12 | 指示グラフ | |
| Critical Pathmethod | AoE-Networkへの重要なパス | 7.13、7.14 | ターゲットネットワーク | |
| 最短パス | 最短パスアルゴリズム | 7.15、7.16 | Dijkstra算法和Floyd算法 | |
| 08動的ストレージ管理 | 境界タグメトッド | 境界識別方法 | 8.1 | |
| バディシステム | パートナーシステム | 8.2 | ||
| ガーバゲコレクション | 役に立たないユニットコレクション | 8.3 | スタックレストラバーサル一般化テーブル |