Skip to content

Data Structures

Basic Structures

โครงสร้างข้อมูลพื้นฐานที่ใช้เป็นองค์ประกอบสำคัญของโครงสร้างที่ซับซ้อนมากขึ้น

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
developer.mozilla.org faviconArrayการเก็บข้อมูลแบบเรียงลำดับการเข้าถึง: O(1)การเก็บรายการข้อมูลdeveloper.mozilla.org faviconJS/TS, doc.rust-lang.org faviconRust, docs.python.org faviconPython, docs.oracle.com faviconJavaขนาดตายตัวในบางภาษา (JS/TS, Java)
developer.mozilla.org faviconObjectคู่คีย์-ค่าการเข้าถึง: O(1)การตั้งค่า, พจนานุกรมdeveloper.mozilla.org faviconJS/TS, docs.python.org faviconPython (dict)คีย์เป็น string เท่านั้นใน JS/TS
doc.rust-lang.org faviconVec (Rust)อาร์เรย์ที่ขยายได้การเข้าถึง: O(1)การเก็บข้อมูลแบบไดนามิกdoc.rust-lang.org faviconRustขยายขนาดได้อัตโนมัติ

Linear Structures

โครงสร้างข้อมูลที่จัดเรียงองค์ประกอบเป็นลำดับเชิงเส้น

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
developer.mozilla.org faviconStack (LIFO)เข้าก่อนออกหลังเพิ่ม/ลบ: O(1)สแต็กการเรียกฟังก์ชันdeveloper.mozilla.org faviconJS/TS, doc.rust-lang.org faviconRust, docs.python.org faviconPython, docs.oracle.com faviconJavaมักใช้อาร์เรย์เป็นพื้นฐาน
developer.mozilla.org faviconQueue (FIFO)เข้าก่อนออกก่อนเพิ่ม: O(1)การจัดตารางงานdeveloper.mozilla.org faviconJS/TS, doc.rust-lang.org faviconRust, docs.python.org faviconPython, docs.oracle.com faviconJavaมีหลายแบบ (circular, priority)
doc.rust-lang.org faviconLinkedList (Rust)ลิงค์ลิสต์สองทางการเข้าถึง: O(n)การดำเนินการระดับต่ำdoc.rust-lang.org faviconRustดีสำหรับการแทรก/ลบบ่อย
doc.rust-lang.org faviconBinaryHeap (Rust)คิวความสำคัญเพิ่ม: O(log n)ระบบจัดตารางงานdoc.rust-lang.org faviconRustใช้สำหรับจัดตารางงาน

Tree Structures

โครงสร้างข้อมูลแบบลำดับชั้นที่มีความสัมพันธ์แบบพ่อแม่-ลูกระหว่างองค์ประกอบ

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
en.wikipedia.org faviconBinary Treeโครงสร้างแบบลำดับชั้นแตกต่างกันไประบบไฟล์developer.mozilla.org faviconJS/TS, doc.rust-lang.org faviconRust, docs.python.org faviconPython, docs.oracle.com faviconJavaมีหลายแบบ (balanced, unbalanced)
en.wikipedia.org faviconBSTต้นไม้ไบนารีเรียงลำดับO(log n) เมื่อสมดุลการค้นหาข้อมูลเรียงลำดับdeveloper.mozilla.org faviconJS/TS, doc.rust-lang.org faviconRust, docs.python.org faviconPython, docs.oracle.com faviconJavaต้องรักษาสมดุล
doc.rust-lang.org faviconBTreeMap (Rust)คู่คีย์-ค่าเรียงลำดับO(log n)แผนที่แบบเรียงลำดับdoc.rust-lang.org faviconRustใช้สำหรับจัดเก็บข้อมูลแบบเรียงลำดับ

Advanced Structures

โครงสร้างข้อมูลที่ซับซ้อนมากขึ้นสำหรับกรณีใช้งานเฉพาะทาง

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
en.wikipedia.org faviconHash Tableคู่คีย์-ค่าใช้ฟังก์ชันแฮชO(1) โดยเฉลี่ยแคช, ฐานข้อมูลdeveloper.mozilla.org faviconJS/TS (Object), docs.python.org faviconPython (dict), docs.oracle.com faviconJava (HashMap)อาจมีการชนกัน
doc.rust-lang.org faviconHashMap (Rust)คู่คีย์-ค่าใช้ฟังก์ชันแฮชO(1) โดยเฉลี่ยการเก็บคีย์ที่ไม่ซ้ำกันdoc.rust-lang.org faviconRustใช้สำหรับจัดเก็บข้อมูลแบบไม่ซ้ำกัน
doc.rust-lang.org faviconHashSet (Rust)ชุดข้อมูลที่ไม่ซ้ำกันO(1) โดยเฉลี่ยการทดสอบสมาชิกภาพdoc.rust-lang.org faviconRustใช้สำหรับทดสอบสมาชิกภาพ
en.wikipedia.org faviconTrieต้นไม้คำนำหน้าO(L) สำหรับค้นหาระบบเติมข้อความอัตโนมัติwww.npmjs.com faviconJS/TS, docs.rs faviconRust, pypi.org faviconPython, www.baeldung.com faviconJavaใช้สำหรับระบบเติมข้อความอัตโนมัติ

Graph Structures

โครงสร้างข้อมูลที่แสดงความสัมพันธ์ระหว่างโหนดต่างๆ ในรูปแบบเครือข่าย

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
en.wikipedia.org faviconDirected Graphโหนดที่มีเส้นเชื่อมทิศทางแตกต่างกันไปการกำหนดเส้นทางเครือข่ายwww.npmjs.com faviconJS/TS, docs.rs faviconRust, networkx.org faviconPython, jgrapht.org faviconJavaมีหลายแบบ (weighted, unweighted)
en.wikipedia.org faviconUndirected Graphโหนดที่มีเส้นเชื่อมทิศทางเดียวแตกต่างกันไปการกำหนดเส้นทางเครือข่ายwww.npmjs.com faviconJS/TS, docs.rs faviconRust, networkx.org faviconPython, jgrapht.org faviconJavaใช้สำหรับเครือข่ายที่ไม่มีทิศทาง

Concurrent Structures

โครงสร้างข้อมูลสำหรับการทำงานแบบขนานและจัดการการเข้าถึงข้อมูล

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
doc.rust-lang.org faviconMutexการป้องกันการเข้าถึงข้อมูลพร้อมกันขึ้นกับการใช้งานการแชร์ข้อมูลระหว่างเธรดdoc.rust-lang.org faviconRust, docs.oracle.com faviconJavaใช้สำหรับป้องกันการเข้าถึงพร้อมกัน
doc.rust-lang.org faviconRwLockการอ่านหลายครั้งหรือเขียนหนึ่งครั้งขึ้นกับการใช้งานกรณีที่อ่านบ่อยแต่เขียนน้อยdoc.rust-lang.org faviconRustใช้สำหรับกรณีที่อ่านบ่อยแต่เขียนน้อย
doc.rust-lang.org faviconAtomicการดำเนินการแบบอะตอมมิกO(1)การแชร์ข้อมูลพื้นฐานระหว่างเธรดdoc.rust-lang.org faviconRust, docs.oracle.com faviconJavaใช้สำหรับแชร์ข้อมูลพื้นฐาน

Functional Structures

โครงสร้างข้อมูลแบบ functional programming

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
doc.rust-lang.org faviconOptionการแสดงค่าที่อาจไม่มีค่าO(1)การจัดการค่า nulldoc.rust-lang.org faviconRust, docs.oracle.com faviconJava (Optional)ใช้สำหรับจัดการค่า null
doc.rust-lang.org faviconResultการแสดงผลลัพธ์หรือข้อผิดพลาดO(1)การจัดการข้อผิดพลาดdoc.rust-lang.org faviconRustใช้สำหรับจัดการข้อผิดพลาด
doc.rust-lang.org faviconIteratorการเข้าถึงองค์ประกอบแบบลำดับขึ้นกับการใช้งานการประมวลผลแบบ lazydoc.rust-lang.org faviconRust, docs.oracle.com faviconJavaใช้สำหรับประมวลผลแบบ lazy

Database Structures

โครงสร้างข้อมูลที่ใช้ในระบบฐานข้อมูล

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
en.wikipedia.org faviconB-Treeต้นไม้สมดุลสำหรับจัดเก็บข้อมูลO(log n)การจัดเก็บข้อมูลในดิสก์ใช้ในหลาย DBใช้สำหรับจัดเก็บข้อมูลในดิสก์
en.wikipedia.org faviconLSM Treeการรวมข้อมูลแบบล็อกO(log n)การเขียนข้อมูลจำนวนมากใช้ในหลาย DBใช้สำหรับเขียนข้อมูลจำนวนมาก
en.wikipedia.org faviconIndexการสร้างดัชนีสำหรับค้นหาเร็วขึ้นกับประเภทการเพิ่มความเร็วการค้นหาใช้ในหลาย DBใช้สำหรับเพิ่มความเร็วการค้นหา

Memory Structures

โครงสร้างการจัดการหน่วยความจำ

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
docs.rs faviconArenaการจัดสรรหน่วยความจำเป็นกลุ่มO(1)การจัดสรรหน่วยความจำประสิทธิภาพสูงdocs.rs faviconRustใช้สำหรับจัดสรรหน่วยความจำประสิทธิภาพสูง
docs.rs faviconPoolการใช้ซ้ำอ็อบเจ็กต์O(1)ลดการสร้างอ็อบเจ็กต์บ่อยครั้งdocs.rs faviconRustใช้สำหรับลดการสร้างอ็อบเจ็กต์บ่อยครั้ง
docs.rs faviconCacheการเก็บข้อมูลที่ใช้บ่อยO(1)การลดการคำนวณซ้ำdocs.rs faviconRustใช้สำหรับลดการคำนวณซ้ำ

Rust-Specific Structures

โครงสร้างข้อมูลเฉพาะของภาษา Rust

Nameคำอธิบายความซับซ้อนเวลาusecaseLanguagesใช้สำหรับ
doc.rust-lang.org faviconArcการนับการอ้างอิงแบบอะตอมมิกO(1)การแชร์ข้อมูลระหว่างเธรดdoc.rust-lang.org faviconRustใช้สำหรับแชร์ข้อมูลระหว่างเธรด
doc.rust-lang.org faviconRcการนับการอ้างอิงO(1)การแชร์ข้อมูลในเธรดเดียวdoc.rust-lang.org faviconRustใช้สำหรับแชร์ข้อมูลในเธรดเดียว
doc.rust-lang.org faviconCellการเปลี่ยนแปลงข้อมูลภายในO(1)การเปลี่ยนแปลงข้อมูล immutabledoc.rust-lang.org faviconRustใช้สำหรับเปลี่ยนแปลงข้อมูล immutable
doc.rust-lang.org faviconRefCellการตรวจสอบการยืมข้อมูลขณะรันไทม์O(1)การยืมข้อมูลแบบไดนามิกdoc.rust-lang.org faviconRustใช้สำหรับการยืมข้อมูลแบบไดนามิก

Last updated: