วันอังคารที่ 24 กรกฎาคม พ.ศ. 2555

โครงสร้างข้อมูล (Data Structure)


โครงสร้างข้อมูล (Data Structure)

โครงสร้างข้อมูล (Data Structure) คือ ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างนั้นๆ รวมทั้งกระบวนการในการจัดการข้อมูลในโครงสร้าง เช่น เพิ่ม แก้ไข ลบ ตัวอย่างของโครงสร้างข้อมูลประเภทต่างๆ ได้แก่ แถวลำดับ ลิงลิสต์ สแตก คิว ทรี และกราฟ.



โครงสร้างข้อมูล (Data Structure)

บิท (Bit) คือ ข้อมูลที่มีขนาดเล็กที่สุด เป็นข้อมูลที่เครื่องคอมพิวเตอร์เข้าใจ และใช้งานได้ ได้แก่ 0 หรือ 1
- ไบท์ (Byte) หรือ อักขระ (Character) คือ ตัวเลข หรือ ตัวอักษร หรือ สัญลักษณ์พิเศษ จำนวน 1 ตัว
- ฟิลด์ (Field) หรือ เขตข้อมูล คือ ไบท์ หรือ อักขระตั้งแต่ 1 ตัวขึ้นไปรวมกันเป็นฟิลด์ เช่น เลขประจำตัว หรือ ชื่อพนักงาน
- เรคคอร์ด (Record) หรือระเบียน คือ ฟิลด์ตั้งแต่ 1 ฟิลด์ขึ้นไป ที่มีความสัมพันธ์เกี่ยวข้องกันมารวมกัน
- ไฟล์ (File) หรือ แฟ้มข้อมูล คือ หลายเรคคอร์ดมารวมกัน เช่น ข้อมูลที่อยู่นักเรียนมารวมกัน
- ฐานข้อมูล (Database) คือ หลายไฟล์ข้อมูลมารวมกัน เช่น ไฟล์ข้อมูลนักเรียนมารวมกันในงานทะเบียน แล้วรวมกับไฟล์การเงิน

ประเภทของโครงสร้างข้อมูล
แบ่งออกเป็น 2 ประเภท คือ

1.) โครงสร้างข้อมูลทางกายภาพ (Physical Data Structure)
1.ข้อมูลเบื้องต้น (Primitive Data Types)
  - จำนวนเต็ม (Integer)
  - จำนวนทศนิยม (Floating point)
  - ข้อมูลบูลีน (Boolean)
  - จำนวนจริง (Real)
  - ข้อมูลอักขระ (Character)

2.ข้อมูลโครงสร้าง (Structure Data Types)
  - แถวลำดับ (Array)
  - ระเบียนข้อมูล (Record)
  - แฟ้มข้อมูล (File)

2.) โครงสร้างข้อมูลทางตรรกะ (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)
_________________________________________________________________

ไม่มีความคิดเห็น:

แสดงความคิดเห็น