โครงสร้างข้อมูล
1.
ความหมายของโครงสร้างข้อมูล
โครงสร้างข้อมูล (Data Structure) คือ
ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างนั้นๆ
รวมทั้งกระบวนการในการจัดการข้อมูลในโครงสร้าง เช่น เพิ่ม แก้ไข ลบ
ตัวอย่างของโครงสร้างข้อมูลประเภทต่างๆ ได้แก่ แถวลำดับ ลิงลิสต์ สแตก
คิว ทรี และกราฟ.
2.
ประเภทของโครงสร้างข้อมูล
แบ่งออกเป็น
2 ประเภท คือ
- โครงสร้างข้อมูลทางกายภาพ
(Physical Data Structure)
เป็นโครงสร้างข้อมูลที่ใช้โดยทั่วไปในภาษาคอมพิวเตอร์ แบ่งออกเป็น 2
ประเภท
1.ข้อมูลเบื้องต้น (Primitive Data
Types)
- จำนวนเต็ม
(Integer)
- จำนวนทศนิยม (Floating
point)
- ข้อมูลบูลีน
(Boolean)
- จำนวนจริง
(Real)
- ข้อมูลอักขระ
(Character)
2.ข้อมูลโครงสร้าง (Structure Data
Types)
- แถวลำดับ
(Array)
- ระเบียนข้อมูล
(Record)
- แฟ้มข้อมูล
(File)
- โครงสร้างข้อมูลทาง ตรรกะ
(Logical Data Structure)
เป็นโครงสร้างข้อมูลที่เกิดจากการจินตนาการของผู้ใช้
เพื่อใช้ในการแก้ปัญหาในโปรแกรมที่สร้างขึ้น แบ่งเป็น 2
ประเภท
1. โครงสร้างข้อมูลแบบเชิงเส้น
(Linear Data Structure)
ความสัมพันธ์ของข้อมูลจะเรียงต่อเนื่องกัน
- ลิสต์
(List)
- สแตก
(Stack)
- คิว
(Queue)
- สตริง
(String)
2. โครงสร้างข้อมูลแบบไม่เชิงเส้น
(Non-Linear Data Structure)
ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว
- ทรี
(Tree)
- กราฟ
(Graph)
3.
การดำเนินการกับโครงสร้างข้อมูล(Data Structure
Operation)
วิธีดำเนินการกับข้อมูลที่นิยมใช้กันมากมี 4 แบบ คือ
1. การเข้าถึงเรคคอร์ด
(Traversing)
2. การค้นหา
(Searching)
3. การเพิ่ม
(Inserting)
4. การลบ
(Deleting)
ยังมีการจัดการกับข้อมูลอีก
2 อย่าง คือ
1. การเรียงข้อมูล
(Sorting)
2. การรวมข้อมูล
(Merging)
4.
การแทนที่ข้อมูลในหน่วยความ จำ
มีอยู่
2 วิธี คือ
การแทนที่ข้อมูลแบบสแตติก (Static
Memory Representation)
เป็น
การแทนที่ข้อมูลที่มีการจองเนื้อที่แบบคงที่แน่นอน
ต้องมีการกำหนดขนาดก่อนการใช้งาน แต่มีข้อเสีย คือ
ไม่สามารถปรับขนาดให้เพิ่มขึ้นหรือลดลงได้
โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบสแตติก คือแถวลำดับ
(Array)
การแทนทีข้อมูลแบบไดนามิก (Dynamic
Memory Representation)
เป็น
การแทนที่ข้อมูลที่ไม่ต้องจองเนื้อที่ ขนาดของเนื้อที่ยืดหยุ่นได้
ตามความต้องการของผู้ใช้
โครงสร้างข้อมูลที่มีการแทนที่หน่วยความจำหลักแบบไดนามิก คือ
ตัวชี้หรือพอยเตอร์ (Pointer)
5.
ลักษณะของโปรแกรมแบบที่มีโครงสร้าง ที่ดี
5.1 โครงสร้างโปรแกรมแบบคำสั่งตาม
ลำดับ
เป็น
โครงสร้างพื้นฐานที่ประกอบด้วยคำสั่งทั่วๆไป
เป็นโครงสร้างที่มีลักษณะการทำงานแบบเรียงลำดับ คือ
จะทำงานตั้งแต่ต้นจนจบโดยไม่มีการข้ามขั้นตอนใดๆ
5.2 โครงสร้างโปรแกรมแบบมีการ
ตัดสินใจ (Decision)
มี
การตรวจสอบเงื่อนไข เพื่อตัดสินใจว่าจะทำการประมวลผลส่วนใด
โดยผลลัพธ์ของเงื่อนไขจะมีค่าของความเป็นไปได้อยู่ 2 ลักษณะ คือ
จริงและเท็จ เท่านั้น
5.3
โครงสร้างโปรแกรมแบบเป็นวงจรปิด (Loop)
มีลักษณะการทำงานซ้ำๆกัน อยู่ในส่วนใดส่วนหนึ่งของโปรแกรม
6. อัลกอริทึม
(Algorithm)
อัลกอรึทึม
คือ วิธีการแก้ปัญหาต่างๆ อย่างมีระบบ
มีลำดับขั้นตอนตั้งแต่ต้นจนได้ผลลัพธ์ สามารถเขียนได้หลายแบบ
การเลือกใช้ต้องเลือกใช้ขั้นตอนวิธีที่เหมาะสม กระชับ
และรัดกุม
อัลกอริทึมที่นิยมใช้กันมาก
ได้แก่
1. อัลกอริทึมแบบแตกย่อย (Divide
and conquer)
2. อัลกอริทึมแบบเคลื่อนที่
(Dynamic Programming)
3. อัลกอริทึมแบบทางเลือก (Greedy
Algorithm)
การเขียนผังงาน
(Flowchart)
Flow Chart
เป็นการอธิบายขั้นตอนการประมวลผลโดยใช้สัญลักษณ์ในการแสดงความหมายหรือกำหนด
ลำดับการทำงาน การใช้กรอบรูปสัญลักษณ์ที่สื่อความหมาย
อธิบายขั้นตอนการทำงานของโปรแกรม
การเขียนรหัสเทียม (Pseudo
Code)
Pseudo Code
การอธิบายขั้นตอนการประมวลผลโดยใช้วลีภาษาอังกฤษในการแสดงอธิบาย
ใช้คำสั้นๆ กะทัดรัด อธิบายขั้นตอนการทำงานของโปรแกรม
พัฒนาการของภาษาโปรแกรม
- ภาษาเครื่อง (Machine
Language)
- ภาษาแอสเซมบลี (Assembly
Language)
- ภาษาระดับสูง (High Level
Language)
- ภาษายุคที่ 4 (Fourth
Generation Language หรือ 4GL)
การบำรุงรักษาโปรแกรม (Program
Maintenance)
หมาย
ถึง การแก้ไขข้อผิดพลาดที่พบระหว่างการทดสอบหรือระหว่างการใช้งาน
ซึ่งอาจเป็นการเปลี่ยนข้อมูลที่ต้องการใช้ใหม่การปรับปรุงข้อมูล
ให้ทันเหตุการณ์อยู่เสมอ การปรับเปลี่ยนโครงสร้างบนหน้าจอ
เป็นต้น