โครงสร้างข้อมูล (DATA STRUCTURE)
โครงสร้างหรือลักษณะเฉพาะของชุดข้อมูลที่ใช้ในระบบคอมพิวเตอร์ เกิดจากการนำชนิดข้อมูลต่างๆ มารวมกันจนกลายเป็นโครงสร้าง
การจัดการข้อมูลในหน่วยความจำภายในเครื่องคอมพิวเตอร์ ให้มีความสัมพันธ์กันภายในกลุ่มข้อมูลให้มีรูปแบบหรือข้อกำหนดที่ชัดเจนในการกำหนดคุณสมบัติ เพื่อสร้างความสัมพันธ์ภายในกลุ่มข้อมูล ซึ่งมีอยู่หลายรูปแบบ เช่น ARRAY, LINK-LIST, STACK, QUEUE, TREE เป็นต้น
ประเภทของโครงสร้างข้อมูล
แบ่งออกเป็น 2 ประเภท
1. โครงสร้างข้อมูลเชิงเส้น (LINEAR DATA STRUCTURE)
2. โครงสร้างข้อมูลไม่เชิงเส้น (NON-LINEAR DATA STRUCTURE)
1.โครงสร้างข้อมูลเชิงเส้น เป็นรูปแบบโครงสร้างของการจัดเก็บข้อมูล ที่มีการจัดเรียงข้อมูลให้ต่อเนื่องกันและเข้าถึงข้อมูลตามลำดับ เช่น โครงสร้างข้อมูลแบบ LINKED LIST, STACK และ QUEUE
2.โครงสร้างข้อมูลไม่เชิงเส้น เป็นรูปแบบโครงสร้างของการจัดเก็บข้อมูล ที่มีการจัดเรียงข้อมูลไม่ต่อเนื่องกันใช้วิธีการเข้าถึงข้อมูลด้วยการระบุตำแหน่งเช่นโครงสร้างข้อมูลแบบ TREE และ GRAPH เป็นต้น
ประโยชน์ของโครงสร้างข้อมูลและอัลกอริทึม
Jเพื่อทำหน้าที่จัดการกับข้อมูลซึ่งจะช่วยให้กระบวนการทำงานภายในระบบคอมพิวเตอร์เป็นไปอย่างรวดเร็วและมีประสิทธิภาพมากยิ่งขึ้น
Jการจัดเก็บข้อมูลจำนวนในรูปแบบของโครงสร้างข้อมูลที่เหมาะสม จะทำให้สามารถนำข้อมูลไปใช้ได้อย่างมีประสิทธิภาพ โดยใช้ทรัพยากรที่มีได้อย่างคุ้มค่าที่สุด (ใช้พื้นที่หน่วยความจำน้อยที่สุด) อีกทั้งยังใช้เวลาในการประมวลผลน้อยที่สุดด้วย ส่งผลให้คอมพิวเตอร์ทำงานเร็วขึ้นนั่นเอง
Jการอ่านข้อมูลเพื่อใช้ในการประมวลผล คอมพิวเตอร์จะอ่านข้อมูลมาเก็บในหน่วยความจำหลัก (หน่วยความจำแรม) และในกรณีที่ข้อมูลมีขนาดมากกว่าขนาดของหน่วยความจำ คอมพิวเตอร์จะใช้โครงสร้างข้อมูลและอัลกอริทึมเข้ามาช่วยในการจัดการกับข้อมูลเหล่านั้น เพื่อให้สามารถจัดสรรหน่วยความจำได้อย่างเหมาะสมและสามารถทำงานได้อย่างต่อเนื่อง
Jโครงสร้างแต่ละชนิด มีความสามารถในการจัดการกับข้อมูลที่แตกต่างกัน
อัลกอริทึม (ALGORITHM)
เป็นวิธีการแสดงลำดับขั้นตอนในการทำงานหรือแก้ไขปัญหาอย่างใดอย่างหนึ่ง เช่นการกำหนดขั้นตอนเพื่อแก้ปัญหาการจัดเรียงเอกสารในแฟ้มข้อมูล หรือการกำหนดอัลกอริทึมในการค้นหาข้อมูลในแฟ้มข้อมูลทั้งหมด เป็นต้น
Aอัลกอริทึมที่ดีควรมีคุณสมบัติ ดังนี้
1. มีลำดับขั้นตอนทำงาน ก่อน-หลัง ชัดเจน
2. เข้าใจง่ายและไม่กำกวม
3. สามารถประมวลผลการทำงานด้วยคอมพิวเตอร์ได้
4. การทำงานของอัลกอริทึมจะต้องสิ้นสุด หลังจากดำเนินงานตามระยะเวลาที่กำหนด
ตัวอย่างอัลกอริทึม : การต้มไข่ไก่
อัลกอริทึมที่ 1 อัลกอริทึมที่ 2
ขั้นตอนในการแก้ปัญหา
1.ศึกษาปัญหา
2.วิเคราะห์ปัญหา
1. INPUT
2. OUTPUT
3. PROCESS
3. ออกแบบอัลกอริทึม
1. ภาษาเขียน
2. ผังงาน
3. รหัสเทียม
4.วิเคราะห์อัลกอริทึม
5. เขียนโปรแกรมคอมพิวเตอร์
กระบวนการทำงานของคอมพิวเตอร์
1. ขั้นตอนการนำข้อมูลเข้า ---> INPUT
2. ขั้นตอนเกี่ยวกับการประมวลผล ---> PROCESS
3. ขั้นตอนการนำข้อมูลออก ---> OUTPUT
ตัวอย่างการวิเคราะห์ : การต้มไข่ไก่
ผังงาน (FLOWCHART)
เป็นเครื่องมือที่ใช้ออกแบบระบบงานด้วยสัญลักษณ์ ช่วยให้มีโครงสร้างของระบบงานที่เป็นลำดับขั้นตอนและเข้าใจได้ง่าย
แบ่งออกเป็น 2 ประเภท
1. ผังงานระบบ (SYSTEM FLOWCHART)
2. ผังงานโปรแกรม (PROGRAM FLOWCHART)
สัญลักษณ์ในการเขียนผังงาน
รหัสเทียม (PSEUDO CODE)
- ใช้อธิบายการทำงานของอัลกอริธึม ทำให้ไม่ต้องเขียนอธิบายด้วย CODE
- ไม่ขึ้นกับภาษาคอมพิวเตอร์ภาษาใดภาษาหนึ่ง อาจเป็นภาษาไทยหรือภาษาอื่นก็ได้ แต่การใช้ภาษาอังกฤษจะสะดวกที่สุด
- เป็นคำสั่งที่มีลักษณะการเขียนใกล้เคียงกับภาษาอังกฤษ แต่มีโครงสร้างเกือบจะเป็นภาษาโปรแกรม
ตัวอย่างการเขียนรหัสเทียม
อ้างอิง
https://www.google.co.th/search?biw=1366&bih=613&tbm=isch&sa=1&ei=bw3hW-aVM4PGvwSnoK-QDQ&q=%E0%B8%AD%E0%B8%B1%E0%B8%A5%E0%B8%81%E0%B8%AD%E0%B8%A3%E0%B8%B4%E0%B8%97%E0%B8%B6%E0%B8%A1+tree&oq=%E0%B8%AD%E0%B8%B1%E0%B8%A5&gs_l=img.1.0.35i39k1l2j0l8.128312.260839.0.262700.16.13.3.0.0.0.106.624.7j1.8.0....0...1c.1.64.img..5.11.637.0..0i67k1j0i30k1.0.KH5gO0lJHwo#imgrc=-8kOhmQsZU71LM:
https://sites.google.com/site/pmtcitajmon/home/hnwy-thi-1-rucak-kab-khorngsrang-khx-mul-laea-xal-kx-ri-thum
https://sites.google.com/site/pmtcitajmon/home/hnwy-thi-1-rucak-kab-khorngsrang-khx-mul-laea-xal-kx-ri-thum