หนวยการเรียนรูที่ 2
โครงสรางขอมูล
- เปนวิธีจัดเก็บขอมูลในคอมพิวเตอร เพื่อให
สามารถนํามาใชไดอยางมีประสิทธิภาพ
- การใชงานโครงสรางขอมูล ตองมีขนตอนวิธีที่
                                    ั้
เหมาะสม จึงจะสามารถใชงานไดอยางมี
ประสิทธิภาพ
- การออกแบบโครงสรางขอมูลที่ดีจะชวยลดเวลา
ในการกระทําการและลดการใชงานในพื้นที่
ความจําดวย
ชนิดของโครงสรางขอมูล
        1.โครงสรางขอมูลเบื้องตน (Primitive Data
Structure) เปนชนิดขอมูลที่ไมมีโครงสรางขอมูลอื่นมาเปน
สวนประกอย เมื่อตองการเก็บคาสามารถเรียกใชงานไดทันที
บางครั้งเรียกวาชนิดขอมูลพื้นฐาน(Base Type)หรือสรางมาให
ใชดวยภาษานั้นๆ
        สวนโครงสรางขอมูลแบบอื่น ๆ จะมีโครงสรางขอมูลอื่น
เปนสวนประกอบ เมื่อตองการใชจะตองกําหนดรูปแบบ
รายละเอียดโครงสรางขึ้นมากอนเรียกวาขอมูลชนิดผูใชกําหนด
(Uses-definedType)ดังนี้
1. โครงสรางขอมูลแบบเรียบงาย (Simple Data
Structure) จะมีสมาชิกที่เปนโครงสรางขอมูลอื่นเปนสวนประกอบมี
รูปแบบงายๆไมซับซอนสามารถทําความเขาใจและสรางขึ้นมาใชงานได
งาย

         2.โครงสรางขอมูลเชิงเสน (Linear Data Structure) เปน
โครงสรางที่ความซับซอนมากขึ้น ประกอบดวยสมาชิกที่เปนโครงสราง
ขอมูลอื่นจัดเรียงตอกันเปนแนวเสน

       3.โครงสรางขอมูลไมเปนเชิงเสน (Nonlinear Data
Structure) เปนโครงสรางที่มีความซับซอนเชนกัน ประกอบดวย
สมาชิกที่เปนโครงสรางขอมูลอื่นจัดเรียงกันในรูปแบบไบนารี่ที่จัดเรียง
สมาชิกมีการแยกออกเปนสองทาง และแบบ N- อารเรย ที่จัดเรียง
สมาชิกมีการแยกออกไดหลายทางหลายรูปแบบไมแนนอน
4.โครงสรางการจัดการแฟมขอมูล (FileOrganization) เปน
โครงสรางสําหรับนําขอมูลเก็บไวในหนวยความจําสํารองโดยขอมูลจะ
อยูในรูปแบบโครงสรางขอมูลอื่นและมีวิธีการจัดการโดยการนํา
โครงสรางขอมูลอื่นๆมาชวย โครงสรางขอมูลตางๆที่กลาวมาอาจตอง
มีการควบคุมการทํางานทีเกี่ยวของกับขอมูลและสวนที่มาเกี่ยวของ
                        ่
ใหเปนไปตามที่ตองการเรียกวา โครงสรางขอมูลนามธรรม ลักษณะ
โครงสรางจะแบงออกเปน 2 สวน คือ สวนขอมูลและสวนปฏิบติการ
                                                          ั
โดนภายในจะมีรายลเอียดการทํางานตาง ๆ ประกอบดวยโครงสราง
การจัดเก็บขอมูลและอัลกอริทมเมื่อใดที่เรียกใชงานโครงสราง
                             ึ
นามธรรมในสวนรายละเอียดการทํางานจะไมถูกเกี่ยวของหรือมี
ผลกระทบโดยถูกปดบังไวจะเห็นวาโครงสรางขอมูลซับซอนจะเปน
โครงสรางขอมูลนามธรรมที่ตองมีสวนการจัดเก็บขอมูลและสวน
ปฏิบัติการ
ลักษณะของขอมูล
          ขอมูลที่มีความถูกตองและเชื่อถือได (accuracy) ขอมูลจะมีความถูก
ตองและเชื่อถืไดมากนอยเพียงใดนั้น ขึ้นกับวิธีการที่ใชในการควบคุมขอมูล
นําเขา และการควบคุมการประมวลผลการควบคุมขอมูลนําเขาเปนการกระทํา
เพื่อใหเกิดความมั่นใจวาขอมูลนําเขามีความถูกตองเชื่อถือได เพราะถาขอมูล
นําเขาไมมีความถูกตองแลวถึงแมจะใชวิธีการวิเคราะหและประมวลผลขอมูลที่ดี
เพียงใด ผลลัพธที่ไดก็จะไมมความถูกตอง หรือนําไปใชไมได ขอมูลนําเขา
                               ี
จะตองเปนขอมูลที่ผานการตรวจสอบวาถูกตองแลว ขอมูลบางอยางอาจตอง
แปลงใหอยูในรูปแบบที่เครื่องคอมพิวเตอรสามารถเขาใจไดอยางถูกตอง ซึง    ่
อาจตองพิมพขอมูลมาตรวจเช็คดวยมือกอน การประมวลผลถึงแมวาจะมีการ
                
ตรวจสอบขอมูลนําเขาแลวก็ตาม ก็อาจทําใหไดขอมูลที่ผดพลาดได เชน เกิด
                                                          ิ
จากการเขียนโปรแกรมหรือใชสตรคํานวณผิดพลาดได ดังนันจึงควรกําหนด
                                   ู                        ้
วิธีการควบคุมการประมวลผลซึงไดแก การตรวจเช็คยอดรวมที่ไดจากการ
                                 ่
ประมวลผลแตละครั้ง หรือการตรวจสอบผลลัพธที่ไดจากการประมวลผลดวย
เครื่องคอมพิวเตอรกับขอมูลสมมติที่มีการคํานวณดวยวามีความถูกตองตรงกัน
หรือไม
ขอมูลตรงตามความตองการของผูใช (relevancy) ไดแก
การเก็บเฉพาะขอมูลที่ผใชตองการเทานั้น ไมควร เก็บขอมูลอื่น ๆ
                            ู
ที่ไมจําเปนหรือไมเกี่ยวของกับการใชงาน เพราะจะทําใหเสียเวลา
และเสียเนื้อที่ในหนวยเก็บขอมูล แตทั้งนี้ขอมูลที่เก็บจะตองมีความ
ครบถวนสมบูรณดวย
          ขอมูลมีความทันสมัย (timeliness) ขอมูลที่ดีนั้นนอกจาก
จะเปนขอมูลที่มีความถูกตองเชื่อถือไดแลวจะ ตองเปนขอมูลที่
ทันสมัย ทั้งนี้เพื่อใหผูใชสามารถนําเอาผลลัพธทไดไปใชได
                                                  ี่
ทันเวลา นั่นคือจะตองเก็บขอมูลไดรวดเร็วเพื่อทันความตองการ
ของผูใช
การเรียงลําดับขอมูล
การคนหาขอมูล
          ปจจุบันนี้เสิรชเอ็นจิ้น (search engine) กลายมาเปนสิ่งจําเปน
สําหรับการทองโลกอินเตอรเนต เพราะหากไมมีบริการชวยคนหาขอมูล
เหลานี้เราตองใชเวลานับหลายชัวโมง หรือเปนวันที่จะคนหาขอมูล ที่เรา
                                      ่
ตองการ จะใชงานครบซึ่งเสิรชเอ็นจิ้น ก็มีมากมาย หลายเจา ใหเราได
เลือกใชงานกันซึ่งแตละเจาก็มีวิธีการที่ใชคนหาาขอมูลที่แตกตางกัน เรา
สามารถแบง เว็บไซต ที่ใหบริการคนหาขอมูลออกเปนประเภทใหญ ๆ ได
2 ประเภท ไดแก

        การบริการคนหาโดยใช อินเด็กซ (index)
        การบริการคนหา ขอมูลตามหมวดหมู (directory)
การคนหาโดยใชอินเด็กซ
         เราคง เคยไดยนชื่อ เสิรช เอ็นจิ้น อยาง อัลตาวิสตา
                      ิ
(AltaVista/www.altavista.digital.com) และฮ็อทบ็อท
(HotBot/www.hotbot.com) ทั้งสอง เปนตัวอยางของเสิรช เอ็นจิ้นนี้ หลักการคือ
เขาจะมีโปรแกรมตัวหนึ่ง เปนตัวสแกน ไปตามเว็บไซตตาง ๆ เรียกวา โปรแกรม
สไปเดอร การคนหา ขอมูลโดยใ ช อินเด็กซ


การคนหาตามหมวดหมู
          เสิรช เอ็นจิ้น ชือดังอีก 2 ตัว ไดแก ยาฮู (Yahoo!/www.yahoo.com)และ
                          ่
แมกเจลแลน (Magellan/www.magellan.com) เลือกใชเทคนิคนี้ โดยใชมนุษย
เปนคนจัดหมวดหมู ของเว็บไซต และคอย ปรับปรุงใหขอมูล ทันสมัยอยูเสมอ
เนื่องจากบัญชี รายชื่อเว็บไซต ไดผานการจัด หมวดหมูโดยมนุษย ดังนั้น ในรายชื่อ
ก็จะมี รายละเอียด คราว ๆ เกี่ยวกับเว็บไซต ที่เพิ่มเติม ลงไป ขอของการคนหาแบบ
นี้คือ จะสามารถตีกรอบผลลัพธ ออกมาตรง กับความ ตองการ มากขึ้น เชน เราลอง
ใสคําวา "Spider" ในยาฮู! คนหาดู เราจะไดรายการของ หมวดหมูออกมา

หน่วยการเรียนรู้ที่ 2 p

  • 1.
  • 2.
    - เปนวิธีจัดเก็บขอมูลในคอมพิวเตอร เพื่อให สามารถนํามาใชไดอยางมีประสิทธิภาพ -การใชงานโครงสรางขอมูล ตองมีขนตอนวิธีที่ ั้ เหมาะสม จึงจะสามารถใชงานไดอยางมี ประสิทธิภาพ - การออกแบบโครงสรางขอมูลที่ดีจะชวยลดเวลา ในการกระทําการและลดการใชงานในพื้นที่ ความจําดวย
  • 3.
    ชนิดของโครงสรางขอมูล 1.โครงสรางขอมูลเบื้องตน (Primitive Data Structure) เปนชนิดขอมูลที่ไมมีโครงสรางขอมูลอื่นมาเปน สวนประกอย เมื่อตองการเก็บคาสามารถเรียกใชงานไดทันที บางครั้งเรียกวาชนิดขอมูลพื้นฐาน(Base Type)หรือสรางมาให ใชดวยภาษานั้นๆ สวนโครงสรางขอมูลแบบอื่น ๆ จะมีโครงสรางขอมูลอื่น เปนสวนประกอบ เมื่อตองการใชจะตองกําหนดรูปแบบ รายละเอียดโครงสรางขึ้นมากอนเรียกวาขอมูลชนิดผูใชกําหนด (Uses-definedType)ดังนี้
  • 4.
    1. โครงสรางขอมูลแบบเรียบงาย (SimpleData Structure) จะมีสมาชิกที่เปนโครงสรางขอมูลอื่นเปนสวนประกอบมี รูปแบบงายๆไมซับซอนสามารถทําความเขาใจและสรางขึ้นมาใชงานได งาย 2.โครงสรางขอมูลเชิงเสน (Linear Data Structure) เปน โครงสรางที่ความซับซอนมากขึ้น ประกอบดวยสมาชิกที่เปนโครงสราง ขอมูลอื่นจัดเรียงตอกันเปนแนวเสน 3.โครงสรางขอมูลไมเปนเชิงเสน (Nonlinear Data Structure) เปนโครงสรางที่มีความซับซอนเชนกัน ประกอบดวย สมาชิกที่เปนโครงสรางขอมูลอื่นจัดเรียงกันในรูปแบบไบนารี่ที่จัดเรียง สมาชิกมีการแยกออกเปนสองทาง และแบบ N- อารเรย ที่จัดเรียง สมาชิกมีการแยกออกไดหลายทางหลายรูปแบบไมแนนอน
  • 5.
    4.โครงสรางการจัดการแฟมขอมูล (FileOrganization) เปน โครงสรางสําหรับนําขอมูลเก็บไวในหนวยความจําสํารองโดยขอมูลจะ อยูในรูปแบบโครงสรางขอมูลอื่นและมีวิธีการจัดการโดยการนํา โครงสรางขอมูลอื่นๆมาชวยโครงสรางขอมูลตางๆที่กลาวมาอาจตอง มีการควบคุมการทํางานทีเกี่ยวของกับขอมูลและสวนที่มาเกี่ยวของ ่ ใหเปนไปตามที่ตองการเรียกวา โครงสรางขอมูลนามธรรม ลักษณะ โครงสรางจะแบงออกเปน 2 สวน คือ สวนขอมูลและสวนปฏิบติการ ั โดนภายในจะมีรายลเอียดการทํางานตาง ๆ ประกอบดวยโครงสราง การจัดเก็บขอมูลและอัลกอริทมเมื่อใดที่เรียกใชงานโครงสราง ึ นามธรรมในสวนรายละเอียดการทํางานจะไมถูกเกี่ยวของหรือมี ผลกระทบโดยถูกปดบังไวจะเห็นวาโครงสรางขอมูลซับซอนจะเปน โครงสรางขอมูลนามธรรมที่ตองมีสวนการจัดเก็บขอมูลและสวน ปฏิบัติการ
  • 6.
    ลักษณะของขอมูล ขอมูลที่มีความถูกตองและเชื่อถือได (accuracy) ขอมูลจะมีความถูก ตองและเชื่อถืไดมากนอยเพียงใดนั้น ขึ้นกับวิธีการที่ใชในการควบคุมขอมูล นําเขา และการควบคุมการประมวลผลการควบคุมขอมูลนําเขาเปนการกระทํา เพื่อใหเกิดความมั่นใจวาขอมูลนําเขามีความถูกตองเชื่อถือได เพราะถาขอมูล นําเขาไมมีความถูกตองแลวถึงแมจะใชวิธีการวิเคราะหและประมวลผลขอมูลที่ดี เพียงใด ผลลัพธที่ไดก็จะไมมความถูกตอง หรือนําไปใชไมได ขอมูลนําเขา ี จะตองเปนขอมูลที่ผานการตรวจสอบวาถูกตองแลว ขอมูลบางอยางอาจตอง แปลงใหอยูในรูปแบบที่เครื่องคอมพิวเตอรสามารถเขาใจไดอยางถูกตอง ซึง ่ อาจตองพิมพขอมูลมาตรวจเช็คดวยมือกอน การประมวลผลถึงแมวาจะมีการ  ตรวจสอบขอมูลนําเขาแลวก็ตาม ก็อาจทําใหไดขอมูลที่ผดพลาดได เชน เกิด ิ จากการเขียนโปรแกรมหรือใชสตรคํานวณผิดพลาดได ดังนันจึงควรกําหนด ู ้ วิธีการควบคุมการประมวลผลซึงไดแก การตรวจเช็คยอดรวมที่ไดจากการ ่ ประมวลผลแตละครั้ง หรือการตรวจสอบผลลัพธที่ไดจากการประมวลผลดวย เครื่องคอมพิวเตอรกับขอมูลสมมติที่มีการคํานวณดวยวามีความถูกตองตรงกัน หรือไม
  • 7.
    ขอมูลตรงตามความตองการของผูใช (relevancy) ไดแก การเก็บเฉพาะขอมูลที่ผใชตองการเทานั้นไมควร เก็บขอมูลอื่น ๆ ู ที่ไมจําเปนหรือไมเกี่ยวของกับการใชงาน เพราะจะทําใหเสียเวลา และเสียเนื้อที่ในหนวยเก็บขอมูล แตทั้งนี้ขอมูลที่เก็บจะตองมีความ ครบถวนสมบูรณดวย ขอมูลมีความทันสมัย (timeliness) ขอมูลที่ดีนั้นนอกจาก จะเปนขอมูลที่มีความถูกตองเชื่อถือไดแลวจะ ตองเปนขอมูลที่ ทันสมัย ทั้งนี้เพื่อใหผูใชสามารถนําเอาผลลัพธทไดไปใชได ี่ ทันเวลา นั่นคือจะตองเก็บขอมูลไดรวดเร็วเพื่อทันความตองการ ของผูใช
  • 8.
  • 9.
    การคนหาขอมูล ปจจุบันนี้เสิรชเอ็นจิ้น (search engine) กลายมาเปนสิ่งจําเปน สําหรับการทองโลกอินเตอรเนต เพราะหากไมมีบริการชวยคนหาขอมูล เหลานี้เราตองใชเวลานับหลายชัวโมง หรือเปนวันที่จะคนหาขอมูล ที่เรา ่ ตองการ จะใชงานครบซึ่งเสิรชเอ็นจิ้น ก็มีมากมาย หลายเจา ใหเราได เลือกใชงานกันซึ่งแตละเจาก็มีวิธีการที่ใชคนหาาขอมูลที่แตกตางกัน เรา สามารถแบง เว็บไซต ที่ใหบริการคนหาขอมูลออกเปนประเภทใหญ ๆ ได 2 ประเภท ไดแก การบริการคนหาโดยใช อินเด็กซ (index) การบริการคนหา ขอมูลตามหมวดหมู (directory)
  • 10.
    การคนหาโดยใชอินเด็กซ เราคง เคยไดยนชื่อ เสิรช เอ็นจิ้น อยาง อัลตาวิสตา ิ (AltaVista/www.altavista.digital.com) และฮ็อทบ็อท (HotBot/www.hotbot.com) ทั้งสอง เปนตัวอยางของเสิรช เอ็นจิ้นนี้ หลักการคือ เขาจะมีโปรแกรมตัวหนึ่ง เปนตัวสแกน ไปตามเว็บไซตตาง ๆ เรียกวา โปรแกรม สไปเดอร การคนหา ขอมูลโดยใ ช อินเด็กซ การคนหาตามหมวดหมู เสิรช เอ็นจิ้น ชือดังอีก 2 ตัว ไดแก ยาฮู (Yahoo!/www.yahoo.com)และ  ่ แมกเจลแลน (Magellan/www.magellan.com) เลือกใชเทคนิคนี้ โดยใชมนุษย เปนคนจัดหมวดหมู ของเว็บไซต และคอย ปรับปรุงใหขอมูล ทันสมัยอยูเสมอ เนื่องจากบัญชี รายชื่อเว็บไซต ไดผานการจัด หมวดหมูโดยมนุษย ดังนั้น ในรายชื่อ ก็จะมี รายละเอียด คราว ๆ เกี่ยวกับเว็บไซต ที่เพิ่มเติม ลงไป ขอของการคนหาแบบ นี้คือ จะสามารถตีกรอบผลลัพธ ออกมาตรง กับความ ตองการ มากขึ้น เชน เราลอง ใสคําวา "Spider" ในยาฮู! คนหาดู เราจะไดรายการของ หมวดหมูออกมา