วันศุกร์ที่ 26 ตุลาคม พ.ศ. 2555

บทที่ 1 ความรู้ทั่วไปเกี่ยวกับโครงสร้างข้อมูล

 1.1 ความหมายของข้อมูล    
        ตอบ  ข้อมูล คือ   ข้อมูล คือ ข้อเท็จจริงของสิ่งที่เราสนใจ ข้อเท็จจริงที่เป็นตัวเลข ข้อความ หรือรายละเอียดซึ่งอาจอยู่ในรูปแบบต่าง ๆ เช่น ภาพ เสียง วีดิโอไม่ว่าจะเป็นคน สัตว์ สิ่งของ หรือเหตุการณ์ที่เกี่ยวข้องกับสิ่งต่าง ๆ  ข้อมูลเป็นเรื่องเกี่ยวกับเหตุการณ์ที่เกิดขึ้นอย่างต่อเนื่อง  และต้องถูกต้องแม่นยำ ครบถ้วน ขึ้นอยู่กับผู้ดำเนินการที่ให้ความสำคัญของความรวดเร็วของการเก็บข้อมูล ดังนั้นการเก็บข้อมูลจึงเป็นการเก็บรวบรวมเกี่ยวกับข้อเท็จจริงของสิ่งที่เราสนใจนั่นเอง ข้อมูลจึงหมายถึงตัวแทนของข้อเท็จจริง หรือความเป็นไปของสิ่งของที่เราสนใจ

1.2  ความสำคัญของการศึกษาโครงสร้างข้อมูล
       ตอบ  โครงสร้างข้อมุลมี2ประเภท

1.โครงสร้างข้อมูลทางกายภาพ ( Physical Data structure )ไม่มีการคำนวณ เป็นการเป็นการเปรียบเทียบ สามารถเห็นและจับต้องได้ ข้อมูลที่พบเห็นได้ทั่วไป เช่น ข้อมูลดิบ

-ข้อมูลเบื้องต้น ได้แก่ จำนวนเต็ม (จำนวนเต็มบวก,จำนวนเต็มลบ,จำนวนเต็มศูนย์) จำนวนจริง (มีจุดทศนิยม) และตัวอักขระ
-ข้อมูลโครงสร้าง ได้แก่ แถวลำดับ ระเบียนข้อมูล แฟ้มข้อมูล


2. โครงสร้างข้อมูลทางตรรกะ ( Logical Data Structure) จะมีลักษณะเป็นข้อมูลเชิงจำนวน และได้มีการประมวลมาแล้ว


-ข้อมูลแบบเชิงเส้น บอกความสัมพันธ์ บอกความเกี่ยวโยง ได้แก่ ลิสต์ แสตก คิว สตริง
-ข้อมูลแบบไม่เชิงเส้น ได้แก่ ทรี กราฟ        

1.3. ความหมายของโครงสร้างข้อมูล  ( Data Structure ) 
        ตอบ ความสัมพันธ์ระหว่างข้อมูลที่อยู่ในโครงสร้างนั้นๆ รวมทั้งกระบวนการในการจัดการข้อมูลในโครงสร้าง เช่น เพิ่ม แก้ไข ลบ
    ตัวอย่าง ของโครงสร้างข้อมูลประเภทต่างๆ ได้แก่ แถว ลำดับ ลิสต์ สแตก คิว ทรี และกราฟ เป็นต้น
1.4 การจัดหมวดหมู่ของโครงสร้างข้อมูล
1.5 ลักษณะของโครงสร้างข้อมูลที่ดี
            ตอบ 
    -ถูกต้อง
    -ทำงานได้เร็ว
    -ประหยัดพื้นที่ในการจัดเก็บ
    -ง่ายไม่ยุ่งยาก  ไม่ซับซ้อน
    -เหมาะสมต่อการนำไปใช้งาน
    -ข้อมูลทันเหตุการณ์และเป็นปัจจุบัน
2.ลักษณะสำคัญของ "ข้อมูลคอมพิวเตอร์" 
  ตอบ  ลักษณะที่สำคัญของคอมพิวเตอร์สามารถแบ่งออกได้ 6 ประเภท คือ
1. ความรวดเร็ว
2. หน่วยความจำ
3. การทำงานอัตโนนัติ
4.การเก็บรักษาข้อมูลหรือโปรแกรม
5.ความถูกต้องและความเชื่อถือได้ 

6.การใช้งานได้หลาย ๆ ด้าน

3.ความหมายของโครงสร้างข้อมูล

    ตอบ  คือ การนำกลุ่มของข้อมูลขนาดใหญ่มาจัดรูปแบบ เพื่อให้เครื่องประมวลผลและแสดงผลอย่างมีขั้นตอน โดยเริ่มจากการรวบรวม เพิ่ม ลบ หรือเข้าถึงข้อมูลแต่ละรายการ

4.ลักษณะสำคัญของโครงสร้างข้อมูลทางกายภาพ  (Physical Data Structure)
           
    ตอบ  ไม่มีการคำนวณ เป็นการเป็นการเปรียบเทียบ สามารถเห็นและจับต้องได้ ข้อมูลที่พบเห็นได้  ทั่วไป เช่น ข้อมูลดิบ

      เป็นโครงสร้างข้อมูลทั่วไปที่มีใช้ในภาษาคอมพิวเตอร์  ซึ่งแบ่งออกเป็นข้อมูล 2 ประเภทตามลักษณะข้อมูล  

             4.1  ข้อมูลเบื้องต้น (primitive data types)     เป็นข้อมูลพื้นฐานซึ่งมีโครงสร้างข้อมูลไม่ซับซ้อนจะต้องมีในภาษาคอมพิวเตอร์ทุกภาษา    ตัวอย่างของข้อมูลประเภทนี้   เช่น  

                  -   จำนวนเต็ม (integer)
                  -   จำนวนจริง (real)
                  -   ตัวอักขระ (character)

           4.2  ข้อมูลโครงสร้าง (structured  data  types)  เป็นข้อมูลที่มีโครงสร้างสลับซับซ้อน    เกิดจากการนำโครงสร้างข้อมูลเบื้องต้นมาประกอบกันเป็นโครงสร้างข้อมูลที่หลากหลายขึ้น   ข้อมูลที่ใช้ในเครื่องคอมพิวเตอร์ยุคแรกเป็นข้อมูลเบื้องต้นเท่านั้น    แต่ในปัจจุบันภาษาคอมพิวเตอร์เกือบทุกภาษามีข้อมูลโครงสร้างด้วยแทบทั้งสิ้น    ตัวอย่างข้อมูลโครงสร้าง    เช่น
            -  แถวลำดับ (array)
            -  เซต (set)
            -  ระเบียนข้อมูล (record)
           -  แฟ้มข้อมูล (file)
5.ลักษณะสำคัญของโครงสร้างข้อมูลทางตรรกะ  (logical  data  structures)
    ตอบ   เป็นโครงสร้างข้อมูลที่เกิดจากจินตนาการของผู้ใช้เพื่อใช้แก้ปัญหาในโปรแกรมที่สร้างขึ้น    จำแนกได้เป็น 2 ประเภท     
               5.1   โครงสร้างข้อมูลแบบเชิงเส้น (linear data structures)    เป็นชนิดข้อมูลที่ความสัมพันธ์ของข้อมูลเรียงต่อเนื่องกัน     โดยข้อมูลตัวที่ 2 อยู่ต่อจาก  ข้อมูลตัวที่ 1    ข้อมูลตัวที่ 3 อยู่ต่อจากข้อมูลตัวที่ 2   และข้อมูลตัวที่ n อยู่ต่อจากข้อมูลตัวที่  n - 1  (ดูรายละเอียดเพิ่มเติมได้ในบทที่  5)   ตัวอย่างโครงสร้างข้อมูลแบบเชิงเส้น   เช่น
                -   ลิสต์  (list)
                -   สแตก (stack)     
                -   คิว (queue)
                 -   ดีคิว (deque)
                -   สตริง (string)
              5.2 โครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น (non-linear  data structures)   เป็นชนิดข้อมูลที่ข้อมูลแต่ละตัวสามารถมีความสัมพันธ์กับข้อมูลอื่นได้หลายตัว (ดูรายละเอียดเพิ่มเติมได้ในบทที่ 7)    ตัวอย่างโครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น
                 -  ทรี (tree)
                 -  กราฟ (graph)
6.อธิบายลักษณะสำคัญของ  Primitive Data Types
   ตอบ  คือ ค่าข้อมูลใด ๆ ก็แล้วแต่นั้นจำเป็นจะต้องทีชนิดของข้อมูลเพื่อบงบอกว่าเป็นชนิดแบบใด เช่น ตัวเลข หรือ ตัวอักษร เป็นต้น เพื่อนำมาใช้ในการดำเนินการต่าง ๆ เช่น การดำเนินการทางคณิตศาสตร์ หรือการแสดงผลในรูปแบบของข้อความ เป็นต้น
7.อธิบายลักษณะสำคัญของ Structure Data Types
    ตอบ   ข้อมูลแบบโครงสร้างหมายถึง กลุ่มของข้อมูลที่มีความสัมพันธ์กัน โดยข้อมูลเหล่านี้อาจมีชนิดข้อมูลที่แตกต่างกัน มีชื่อที่ใช้อ้างถึงข้อมูลแต่ละตัวต่างกัน แต่ข้อมูลกลุ่มนี้จะอยู่ภายใต้ชื่อกลุ่มข้อมูลเดียวกัน
ตัวอย่างเช่น

ต้องการเก็บข้อมูลของนักเรียนแต่ละคนซึ่งประกอบด้วย รหัส ชื่อ นามสกุล อายุ เกรดเฉลี่ย จำนวน 10 คน

8.อธิบายลักษณะสำคัญของโครงสร้างข้อมูลแบบเชิงเส้น   พร้อมยกตัวอย่าง

     ตอบ   โครงสร้างที่มีการจัดเก็บข้อมูลในลักษณะต่อเนื่องกัน ถ้าทราบตำแหน่งแรกของข้อมูลก็สามารถทราบตำแหน่งข้อมูลตัวถัดไปหรือข้อมูลตัวอื่นได้ ทางคณิตศาสตร์จะเรียกว่า เวกเตอร์ (Vector) ข้อมูลมีลักษณะเป็น มิติ เช่น อาเรย์, สแตกคิว,ลิสต์  

ตัวอย่าง


9.อธิบายลักษณะสำคัญของโครงสร้างข้อมูลแบบไม่เป็นเชิงเส้น   พร้อมยกตัวอย่าง

   ตอบ   โครงสร้างที่ไม่มีคุณสมบัติของเชิงเส้น สามารถใช้แสดงความสัมพันธ์ของข้อมูลที่ซับซ้อนได้มากกว่าโครงสร้างข้อมูลแบบเชิงเส้นเช่น ทรีกราฟ

 ตัวอย่าง



10.เขียนผังแสดงการจัดหมวดหมู่โครงสร้างข้อมูลคอมพิวเตอร์ พร้อมอธิบาย
    
  ตอบ  



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

2. โครงสร้างข้อมูลแบบเรียบง่าย (Simple Data Structure) 
     จะมีสมาชิกที่เป็นโครงสร้างข้อมูลอื่นเป็นส่วนประกอบ มีรูปแบบง่าย ๆ ไม่ซับซ้อน สามารถทำความเข้าใจและสร้างขึ้นมาใช้งานได้ง่าย

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

4. โครงสร้างข้อมูลไม่เป็นเชิงเส้น (Nonlinear Data Structure) 
       เป็นโครงสร้างที่มีความซับซ้อนเช่นกัน ประกอบด้วยสมาชิกที่เป็นโครงสร้างข้อมูลอื่นจัดเรียงกันในรูปแบบไบนารี่ ที่จัดเรียงสมาชิกมีการแยกออกเป็นสองทาง และแบบ N- อาร์เรย์ ที่จัดเรียงสมาชิกมีการแยกออกได้หลายทางหลายรูปแบบไม่แน่นอน

5. โครงสร้างการจัดการแฟ้มข้อมูล (File Organization) 
       เป็นโครงสร้างสำหรับนำข้อมูลเก็บไว้ในหน่วยความจำสำรอง โดยข้อมูลจะอยู่ในรูปแบบโครงสร้างข้อมูลอื่น และมีวิธีการจัดการโดยการนำโครงสร้างข้อมูลอื่น ๆ มาช่วย
โครงสร้างข้อมูลต่าง ๆที่กล่าวมาอาจต้องมีการควบคุมการทำงานที่เกี่ยวข้องกับข้อมูลและส่วนที่มาเกี่ยวข้องให้เป็นไปตามที่ต้องการเรียกว่า โครงสร้างข้อมูลนามธรรม ลักษณะโครงสร้างจะแบ่งออกเป็น ส่วน คือ ส่วนข้อมูลและส่วนปฏิบัติการ โดนภายในจะมีรายลเอียดการทำงานต่าง ๆ ประกอบด้วยโครงสร้างการจัดเก็บข้อมูลและอัลกอริทึม เมื่อใดที่เรียกใช้งานโครงสร้างนามธรรมในส่วนรายละเอียดการทำงานจะไม่ถูกเกี่ยวข้องหรือมีผลกระทบโดยถูกปิดบังไว้ จะเห็นว่าโครงสร้างข้อมูลซับซ้อนจะเป็นโครงสร้างข้อมูลนามธรรมที่ต้องมีส่วนการจัดเก็บข้อมูลและส่วนปฏิบัติการ

11.ยกตัวอย่างที่แสดงให้เห็นถึงความสำคัญของการศึกษาโครงสร้างข้อมูล และการนำโครงสร้างข้อมูลไปใช้งาน พร้อมอธิบายโดยละเอียด

  ตอบ ครงสร้างข้อมูล เป็นการจัดเก็บข้อมูลในคอมพิวเตอร์เพื่อให้สามารถใช้งานได้อย่างมี ประสิทธิภาพ บ่อยครั้งที่การเลือกโครงสร้างข้อมูลที่เหมาะสมจะทำให้เราสามารถเลือกใช้อัลกอริทึมที่มีประสิทธิภาพไปพร้อมกันได้ การเลือกโครงสร้างข้อมูลนั้นโดยส่วนใหญ่แล้วจะเริ่มต้นจากการเลือกแบบชนิดข้อมูลนามธรรม โครงสร้างข้อมูลที่ออกแบบเป็นอย่างดีจะสามารถรองรับการประมวลผลที่หนักหน่วง โดยใช้ทรัพยากรที่น้อยที่สุดเท่าที่จะเป็นไปได้ ทั้งในแง่ของเวลาและหน่วยความจำ
โครงสร้างข้อมูลแต่ละแบบจะเหมาะสมกับงานที่แตกต่างกัน และโครงสร้างข้อมูลบางแบบก็ออกแบบมาสำหรับบางงานโดยเฉพาะ อย่างเช่น ต้นไม้แบบบี
จะเหมาะสำหรับระบบงานฐานข้อมูล













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

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