Basic Structures
Array
Array เป็นโครงสร้างข้อมูลพื้นฐานสำหรับเก็บชุดข้อมูลแบบลำดับ โดยใช้ดัชนี (index) ในการเข้าถึงข้อมูลแต่ละตัว ซึ่งทำให้การอ่านข้อมูลทำได้รวดเร็ว แต่การเพิ่มหรือลบข้อมูลอาจต้องย้ายข้อมูลอื่นๆ
Object
Object เป็นโครงสร้างข้อมูลแบบคู่คีย์-ค่าที่ใช้เก็บข้อมูลแบบไม่เรียงลำดับ โดยใช้ key เป็นตัวระบุเฉพาะสำหรับเข้าถึง value ซึ่งทำให้การค้นหาทำได้รวดเร็ว แต่ไม่สามารถรักษาลำดับของข้อมูลได้
Linear Structures
Stack
Stack เป็นโครงสร้างข้อมูลแบบ LIFO (Last-In-First-Out) ที่เน้นการทำงานที่ส่วนบนสุดเท่านั้น โดยใช้การ push เพื่อเพิ่มข้อมูลและ pop เพื่อนำข้อมูลออก
Queue
Queue เป็นโครงสร้างข้อมูลแบบ FIFO (First-In-First-Out) ที่ทำงานกับข้อมูลด้านหน้าและด้านหลัง โดยใช้ enqueue เพื่อเพิ่มข้อมูลและ dequeue เพื่อนำข้อมูลออก
Linked List
Linked List เป็นโครงสร้างข้อมูลเชิงเส้นที่ประกอบด้วย node ที่เชื่อมต่อกันด้วย pointer ซึ่งทำให้การเพิ่ม/ลบข้อมูลทำได้รวดเร็ว แต่การเข้าถึงข้อมูลแบบสุ่มทำได้ช้า
Tree Structures
Binary Tree
Binary Tree เป็นโครงสร้างข้อมูลแบบลำดับชั้น โดยแต่ละ node มีลูกไม่เกินสองตัว ซึ่งทำให้การค้นหาทำได้รวดเร็ว แต่การเพิ่มหรือลบ node อาจต้องปรับโครงสร้างทั้งหมด
Binary Search Tree
Binary Search Tree เป็นประเภทเฉพาะของ Binary Tree ที่มีคุณสมบัติสำคัญ 3 ข้อ: ทุกโหนดใน subtree ซ้ายมีค่าน้อยกว่าโหนดปัจจุบัน, ทุกโหนดใน subtree ขวามีค่ามากกว่าโหนดปัจจุบัน, และทั้งสอง subtree ต้องเป็น Binary Search Tree ด้วย ซึ่งทำให้การค้นหาทำได้รวดเร็ว
Key-Value Structures
Hash Table
Hash Table เป็นโครงสร้างข้อมูลแบบ key-value pairs โดยใช้ hash function ในการเข้าถึงข้อมูล ซึ่งทำให้การค้นหาทำได้รวดเร็ว แต่อาจมีปัญหาการชนกันของ key
Graph Structures
Directed Graph
Directed Graph เป็นโครงสร้างข้อมูลแบบเครือข่ายที่มีการเชื่อมต่อระหว่างโหนดแบบมีทิศทางชัดเจน เหมาะสำหรับแสดงความสัมพันธ์แบบพ่อ-ลูก หรือลำดับขั้น
Undirected Graph
Undirected Graph เป็นโครงสร้างข้อมูลแบบเครือข่ายที่โหนดเชื่อมต่อกันแบบสองทาง ไม่มีทิศทางชัดเจน เหมาะสำหรับแสดงความสัมพันธ์แบบเพื่อนบ้านหรือเครือข่ายสังคม
Sorting Algorithms
Bubble Sort
Bubble Sort เป็นอัลกอริทึมการเรียงลำดับพื้นฐานที่ทำงานโดยการเปรียบเทียบและสลับค่าที่อยู่ติดกัน ซึ่งทำให้การใช้งานง่ายแต่ประสิทธิภาพต่ำ เหมาะสำหรับข้อมูลชุดเล็ก
Quick Sort
Quick Sort เป็นอัลกอริทึมแบบแบ่งแยกและเอาชนะที่ใช้ pivot ในการแบ่งข้อมูล ซึ่งทำให้มีประสิทธิภาพสูงในการเรียงลำดับข้อมูลชุดใหญ่ แต่การทำงานอาจไม่เสถียรในบางกรณี
Merge Sort
Merge Sort เป็นอัลกอริทึมแบบแบ่งแยกและจัดเรียงที่ทำงานโดยการแบ่งข้อมูลออกเป็นส่วนย่อยแล้วนำมารวมกันใหม่ ซึ่งทำให้มีประสิทธิภาพคงที่แต่ใช้หน่วยความจำมาก