บทนำ
การเขียนโปรแกรมหมุนรอบรอบ Data (ข้อมูล) การจัดระเบียบและจัดเก็บข้อมูลอย่างมีประสิทธิภาพจึงเป็นหัวใจสำคัญของการพัฒนาซอฟต์แวร์ Data Type และ Data Structure ดูคล้ายกันแต่มีความหมายต่างกันอย่างชัดเจน
ตารางเปรียบเทียบ Data Type และ Data Structure
| ลำดับ | หัวข้อ | Data Type (ชนิดข้อมูล) | Data Structure (โครงสร้างข้อมูล) |
|---|---|---|---|
| 1 | นิยาม | ระบุลักษณะและชนิดของข้อมูล เช่น int, float, char, boolean - อธิบายลักษณะร่วมของกลุ่มข้อมูล | เป็นคอลเลกชันที่จัดเก็บข้อมูลเพื่อให้สะดวกในการดำเนินการ/อัลกอริทึม เช่น Array, Stack, Queue, Tree, Graph |
| 2 | การนำไปใช้ (Implementation) | Abstract Implementation - นิยามโดยภาษาโปรแกรมแต่ละภาษาแตกต่างกันไป | Concrete Implementation - มีโครงสร้างภายในที่ชัดเจน รู้จักวิธีจัดเก็บและเข้าถึง |
| 3 | การจัดเก็บ (Storage) | ไม่จัดเก็บค่าข้อมูลโดยตรง เพียงระบุ "ชนิด" ของค่าที่จะเก็บได้ | จัดเก็บข้อมูลจริงพร้อมค่า ใช้หน่วยความจำจริง สามารถเก็บข้อมูลหลายชนิดในอ็อบเจกต์เดียวได้ |
| 4 | การกำหนดค่า (Assignment) | กำหนดค่าโดยตรงให้ตัวแปร เช่น x = 10 | กำหนดค่าผ่าน Operations/Algorithms เช่น push(), pop(), enqueue(), dequeue() |
| 5 | ประสิทธิภาพ (Performance) | ไม่เกี่ยวข้องกับ Time Complexity เพราะเพียงระบุลักษณะข้อมูล | เกี่ยวข้องกับ Time/Space Complexity เพราะต้องดำเนินการจัดการข้อมูล |
ตัวอย่างเพื่อความเข้าใจ
- Data Type:
int- บอกว่าเก็บจำนวนเต็มได้ ไม่บอกว่าเก็บยังไงในหน่วยความจำ - Data Structure:
ArrayList<Integer>- จัดเก็บหลาย int ไว้ด้วยกัน มี method add(), get(), remove() จัดการลำดับและหน่วยความจำ
สรุป
Data Type = "ข้อมูลเป็นอะไร" (ลักษณะ/ชนิด)
Data Structure = "ข้อมูลจัดเก็บและจัดการยังไง" (โครงสร้าง/อัลกอริทึม)
ทั้งคู่ทำงานร่วมกัน: Data Structure ใช้ Data Type เป็นบล็อกสร้างสรรค์