ซอร์สโค้ดในโครงการนี้มาพร้อมกับตำราเรียน " Data Struction -C Edition " [Yan Weimin, Wu Weimin Edition] และ " การรวบรวมคำถามโครงสร้างข้อมูล - C Language Edition " [Yan Weimin, Wu Weimin, Mining Edition]
| ตำราโครงสร้างข้อมูล | ชุดคำถามโครงสร้างข้อมูล |
|---|---|
![]() | ![]() |
โครงการนี้รวมถึง ซอร์สโค้ดตำราเรียน และ ซอร์สโค้ด และแบ่งออกเป็น 4 เวอร์ชันคือ: Cfree , dev-c ++ , clion และ visualc ++ ซึ่ง:
ทางเลือกของ IDE
Cfree เป็นซอฟต์แวร์ในประเทศที่ยอดเยี่ยม อย่างไรก็ตามผลิตภัณฑ์ได้ถูกยกเลิกเป็นเวลานานและมีปัญหาความเข้ากันได้บางอย่างเกี่ยวกับ Win10 และจำเป็นต้องปรับ
Dev-C ++ เป็นซอฟต์แวร์โอเพนซอร์สที่มีขนาดเล็กและใช้งานได้จริงเช่นเดียวกับ CFREE สิ่งที่สำคัญที่สุดคือมันเข้ากันได้กับ Win10 และแนะนำ
Clion ต้องการความรู้เล็กน้อยเกี่ยวกับ CMAKE และต้องการข้อกำหนดด้านประสิทธิภาพที่สูงขึ้นเล็กน้อยสำหรับสมุดบันทึก อย่างไรก็ตามผลิตภัณฑ์ Jetbrains Series มีฟังก์ชั่นที่ยอดเยี่ยมและขอแนะนำให้ลองใช้งาน
Microsoft Visual C ++ ผลิตโดย Microsoft หากคุณไม่ได้ใช้ C/C ++/C# และเส้นทางอื่น ๆ ในอนาคตคุณไม่สามารถใช้ก่อนได้ (หมายเหตุ: ตั้งแต่ปี 2561 VC ++ 6 ได้ถูกแทนที่ด้วย Microsoft Visual C ++ 2010 ในการสอบภาษาคอมพิวเตอร์ระดับที่สองดังนั้นหากคุณมีความต้องการการให้คะแนนโปรดทำความคุ้นเคยกับ IDE นี้)
การวิเคราะห์คำถาม ที่ ไม่ใช่รหัสใน "การรวบรวมคำถามโครงสร้างข้อมูล " จะถูกเก็บไว้ใน การวิเคราะห์การออกกำลัง กาย
注:
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) | refactoring ส่วนใหญ่หมายถึงการแก้ไขซอร์สโค้ดและความคิดเห็นที่มีอยู่ | :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 | ผสานตารางคำสั่งซื้อ | |
| ลิสต์ลิสต์ | รายการลิงก์ | 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 | แอปพลิเคชันสแต็ก | |
| LineDit | โปรแกรมแก้ไขสาย | 3.2 | แอปพลิเคชันสแต็ก | |
| เขาวงกต | วิธีการค้นหาเขาวงกต | 3.3 | แอปพลิเคชันสแต็ก | |
| การแสดงออก | การประเมินผลการแสดงออก | 3.4 | แอปพลิเคชันสแต็ก | |
| ฮานอย | หอคอยแห่งฮันเนอร์ | 3.5 | การเรียกซ้ำ | |
| Linkqueue | คอลัมน์โซ่ | โครงสร้างการจัดเก็บโซ่ | ||
| SQQUEUE | คิวตามลำดับ | ลูปคิวโครงสร้างการจัดเก็บตามลำดับ | ||
| การซื้อกิจการ | จำลองคิวธนาคาร | 3.6, 3.7 | แอปพลิเคชันคิว | |
| 04 สตริง | การพูดคุยกัน | สตริงลำดับ | 4.1, 4.2, 4.3, 4.5 | ที่เก็บลำดับ |
| HSTRING | สตริงกอง | 4.4 | ที่เก็บข้อมูลตามลำดับการจัดสรรหน่วยความจำแบบไดนามิก | |
| LSTRING | สตริง blockchain | ที่เก็บข้อมูลลำดับ + ที่เก็บโซ่ | ||
| 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 | การแสดงรายการที่เก็บข้อมูลรายการ HEAD และ TAIL LINK | |
| GLIST-E | ตารางทั่วไป | การแสดงรายการที่เก็บข้อมูลรายการที่เชื่อมโยงเชิงเส้น | ||
| mplist | M-part polynomial | ที่เก็บโซ่ | ||
| 06 ต้นไม้และต้นไม้ไบนารี | Sqbitree | โครงสร้างการจัดเก็บตามลำดับของต้นไม้ไบนารี | ||
| Bitree | โครงสร้างการจัดเก็บรายการไบนารีของทรีไบนารี | 6.1, 6.2, 6.3, 6.4 | ||
| บิตริตรี | โครงสร้างที่เก็บข้อมูลรายการที่เชื่อมโยงสามในสี่ของต้นไม้ไบนารี | |||
| Bithrtree | เบาะแสต้นไม้ไบนารี | 6.5, 6.6, 6.7 | ||
| ptree | การจัดเก็บตารางหลักของต้นไม้ | |||
| ctree | การเป็นตัวแทนการจัดเก็บของรายการที่เชื่อมโยงของเด็ก ๆ ของต้นไม้ (กับผู้ปกครอง) | |||
| Cstree | รายการที่เชื่อมโยงไบนารีของต้นไม้ (เด็กพี่ชาย) การเป็นตัวแทนการจัดเก็บโครงสร้าง | |||
| mfset | รวมตัว | 6.8, 6.9, 6.10, 6.11 | ||
| HuffMantree | ต้นไม้ Huffman | 6.12, 6.13 | หรือที่รู้จักกันในชื่อ "Hafman Tree" | |
| Powerset | ของสะสม | 6.14/6.15 | ||
| ชาวนู | ปัญหาของราชินี | 6.16 | ||
| 07 ภาพ | mgraph | การจัดเก็บเมทริกซ์ adjacency ของกราฟ | 7.1, 7.2, 7.4, 7.5, 7.6 | กราฟกำกับกำกับเครือข่ายกำกับกราฟที่ไม่ได้บอกทิศทางเครือข่ายที่ไม่ได้บอกทิศทาง |
| กราฟ | ที่เก็บตารางที่อยู่ติดกันของกราฟ | กราฟกำกับกำกับเครือข่ายกำกับกราฟที่ไม่ได้บอกทิศทางเครือข่ายที่ไม่ได้บอกทิศทาง | ||
| olgraph | การจัดเก็บรายการ cross-link ของไดอะแกรม | 7.3 | กราฟกำกับกำกับเครือข่ายกำกับกราฟที่ไม่ได้บอกทิศทางเครือข่ายที่ไม่ได้บอกทิศทาง | |
| amlgraph | ที่เก็บตารางหลายตารางที่อยู่ติดกันของกราฟ | กราฟที่ไม่ได้กำกับเครือข่ายที่ไม่ได้บอกทิศทาง | ||
| สายพันธุ์ | ต้นไม้ที่ทอดยาวของกราฟที่ไม่ได้ทำ | 7.7, 7.8 | Mr. Deep ยอดเยี่ยมในการเป็นต้นไม้ | |
| Components ที่เชื่อมต่ออย่างรุนแรง | กราฟกำกับโดยตรงส่วนประกอบการเชื่อมต่อที่แข็งแกร่ง | อัลกอริทึม Kosaraju และอัลกอริทึม Tarjan | ||
| ขั้นต่ำ | ต้นไม้ที่ครอบคลุมขั้นต่ำสำหรับเครือข่ายที่ไม่ได้บอกทิศทาง | 7.9 | อัลกอริทึม Prim และอัลกอริทึม Kruskal | |
| บทความ | โหนดของกราฟที่ไม่ได้กำกับ | 7.10, 7.11 | ||
| ทอพอโลยี | การจัดเรียงทอพอโลยีของ AOV-network | 7.12 | กราฟกำกับ | |
| วิกฤตทฤษฎี | เส้นทางสำคัญไปยังเครือข่าย AOE | 7.13, 7.14 | เครือข่ายเป้าหมาย | |
| shortestpaths | อัลกอริทึมเส้นทางที่สั้นที่สุด | 7.15, 7.16 | อัลกอริทึม Dijkstra และอัลกอริทึม Floyd | |
| 08 การจัดการการจัดเก็บข้อมูลแบบไดนามิก | เขตแดน | วิธีการระบุขอบเขต | 8.1 | |
| ระบบ Buddysy | ระบบพันธมิตร | 8.2 | ||
| Garbagecollection | คอลเลกชันหน่วยที่ไร้ประโยชน์ | 8.3 | ตารางการสำรวจทั่วไปแบบ traversal |