วันศุกร์ที่ 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.ยกตัวอย่างที่แสดงให้เห็นถึงความสำคัญของการศึกษาโครงสร้างข้อมูล และการนำโครงสร้างข้อมูลไปใช้งาน พร้อมอธิบายโดยละเอียด

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













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

บทที่ 1 
พื้นฐานโครงสร้างข้อมูล

            คอมพิวเตอร์เป็นอุปกรณ์ที่สร้างขึ้นมาเพื่อใช้จัดการและเปลี่ยนแปลงข้อมูลข่าวสาร (Information) ดังนั้น จึงต้องมีการศึกษาถึงการควบคุมดูแลการทำงานของคอมพิวเตอร์ที่ยุ่งเกี่ยวกับข้อมูลข่าวสาร เมื่อมีการเปลี่ยนแปลงแก้ไขหรือเพื่ออำนวยประโยชน์ที่ต้องการการทำงานเพื่อนแก้ไขปัญหาต่าง ๆ ด้วยระบบคอมพิวเตอร์จะประกอบด้วยส่วนต่าง ๆ ทางด้านฮาร์ดแวร์ (Hardware) เช่น ซีพียู (CPU) หน่วยความจำ (Memory) อุปกรณ์รับส่งข้อมูล(Input/Output Device)และซอฟแวร์(Software)ที่นำมาใช้ควบคุมการทำงานของฮาร์ดแวร์ เพื่อแก้ไขปัญหานั้น ๆ ในการแก้ไขปัญหาจึงต้องมีกระบวนการพัฒนาซอฟต์แวร์ (Software Development) ที่เป็นขั้นตอนมาใช้ดังนี้

ขั้นตอนการพัฒนาซอฟแวร์

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

การออกแบบระบบ 
       เนื่องจากระบบคอมพิวเตอร์ไม่สามารถที่จะเข้าใจและแกไขปัญหาบางอย่างได้ จึงต้องมีวิธีการที่จะแก้ไขปัญหาโดยการออกแบบระบบ ซึ่งเป็นการวางแผนออกแบบที่แยกแยะออกเป็นปัญหาย่อย และพิจารณาสร้างชุดคำสั่งเพื่อแก้ไขปัญหาย่อยนั้น จากนั้นมารวมกันเป็นระบบที่สามารถแก้ไขปัญหาทั้งหมด มีลักษณะการวางแผนออกแบบจากบนลงล่าง (Top-down Design) ซึ่งประกอบด้วย 2 ส่วนหลัก ๆ คือ
1. โครงสร้างข้อมูล (Data Strutcure) 
        ใช้ควบคุมและจัดการกับข้อมูลของปัญหานั้น ๆ หรือที่เรียกว่าชนิดข้อมูลมีโครงสร้าง เรียกสั้น ๆ ว่าชนิดข้อมูล เช่น ชนิดข้อมูลอาร์เรย์ ชนิดข้อมูลสแตก และชนิดข้อมูลลิ้งค์ ลิสต์ การออกแบบระบบต้องเลือกใช้โครงสร้างข้อมูลอย่างเหมาะสมเพื่อจัดการกับข้อมูลที่ใช้ในระบบ 
2. การออกแบชุดคำสั่ง (Module Design)
        ในการแก้ไขปัญหาจะต้องมีกระบวนการทำงานเพื่อให้ได้มาซึ่งข้อมูลข่าวสารหรือเอ้าท์พุต ที่ต้องการโดยชุดคำสั่งเป็นส่วนประกอบของระบบ จึงต้องมีการออกแบบการทำงานที่เป็นชุดคำสั่งหรือโมดุลนั้นๆ และเรียกว่า อัลกอรึทึม ได้เป็น  

โครงสร้างข้อมูล + อัลกอริทึม = โปรแกรม

        การที่จะเลือกใช้โครงสร้างข้อมูลและอัลกอริทึมในการออกแบบให้การทำงานอย่สงมีประสิทธิภาพ  ซึ่งถือว่าเป็นหัวใจสำคัญของการออกแบบซอฟต์แวร์จะพิจารณาได้จากลักษณะดังต่อไปนี้ 
1.      ความถูกต้อง
2.      ระยะเวลาการทำงาน
3.      จำนวนพื้นที่ใช้งาน
4.      ความเรียบง่าย
5.      ความเหมาะสมที่สุด
การเขียนคำสั่งและรวมกัน 
       การเขียนคำสั่ง (Coding) คือ การเขียนคำสั่งต่าง ๆ ของโปรแกรมให้ทำงานเป็นไปตามโครงสร้างข้อมูลและอัลกอริทึมด้วยภาษาเขียน โปรแกรมภาหนึ่ง ถ้าโครงสร้างข้อมูลและอัลกอริทึมถูกออกแบบไว้เป็นอย่างดีทำให้กระบวนการแปลง คำสั่งจากภาษาเขียนให้เป็นภาษาเครื่องก็จะง่ายไม่ยุ่งยากลำบาก
       การรวมกัน (Integration) เป็นกระบวนการนำคำสั่งต่าง ๆ ที่เขียนเป็นแต่ละชุดคำสั่งมารวมกันและให้มีการทำงานร่วมกันได้เป็นซอฟต์แวร์โปรแกรมขึ้นมา 
        การเขียนโปรแกรมที่ดีนั้นจะต้องมีความถูกต้องในการทำงาน สามารถอ่านคำสั่งและทำความเข้าใจได้ง่าย จึงต้องมีโครงสร้างการเขียนโปรแกรมที่ดี ซึ่งมีวิธีการเข้ามาช่วยเหลือในการเขียนโดยพิจารณาได้จากเรื่องต่อไปนี้
1. การเขียนโปรแกรมควรเป็นแบบบนลงล่าง (Top-Down) โดยเฉพาะกับปัญหาที่มีขนาดใหญ่หรือมีความซับซ้อน จึงควรแยกปัญหาใหญ่ออกเป็นปัญหาย่อย ๆ จากการเขียนคำสั่งทั้งหมดในโปรแกรม ก็แยกเป็นชุดคำสั่งย่อย ๆ
        2. ใช้โครงสร้างควบคุมการทำงาน (Control Structure) ในการเขียนโปรแกรมหรือชุดคำสั่ง เช่น การใช้เงื่อนไข IF การใช้วนลูปแบบต่าง ๆ
        3. ควรใช้ตัวแปรที่เป็นแบบโลคอล (Local Variable) และใช้กับชุดคำสั่งเพื่อแก้ปัญหาย่อย
        4. ควรใช้ตัวแปรพารามิเตอร์ (Parameter)  กับชุดคำสั่งเพื่อแก้ไขปัญหาย่อย หลีกเลี่ยงที่จะใช้ตัวแปรที่เป็นแบบโกลบอล และตัวพารามิเตอร์ควรมีการป้องกันหากมีการแก้ไขค่า
        5. นำตัวแปรค่าคงที่ ( Constant Variable) มาใช้ จะช่วยให้การเขียนโปรแกรมมีความยืดหยุ่นมากขึ้นและอ่านเข้าใจง่าย
        6. การเขียนโปรแกรมควรมีการจัดพื้นที่หรือบรรทัดว่างเพื่อให้อ่านสะดวก มีการย่อหน้าเพื่อจัดระดับของคำสั่งและมีลักษณะที่เป็นกรอบ

ทดสอบความถูกต้อง
      1. การตรวจคำสั่ง (Validation) เป็นการตรวจสอบการเขียนโปรแกรมว่ามีความถูกต้องตามโครงสร้างของภาษาและทำงานตรงตามที่ต้องการหรือไม่ 
        2. การตรวจสอบความจริง (Verification) เป็นการตรวจสอบขั้นตอนการทำงานของโปรแกรมว่ามีความถูกต้องและสอดคล้องกันหรือไม่
        3. การทดสอบ (Testing) เป็นการทดสอบการทำงานว่าในแต่ละส่วนหรือชุดคำสั่งและการทำงานทั้งหมดในโปรแกรมมีความถูกต้องหรือไม่ มีการทดสอบแต่ละยูนิต   ทดสอบการรวมกันของยูนิต

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

ความหมายโครงสร้างข้อมูล/ชนิดข้อมูล
         การทำงานของคอมพิวเตอร์จะมีการจัดการอย่างไรเพื่อให้ได้มาซึ่งข้อมูลข่าวสาร   และสามารถนำมาใช้งานออกมาเป็นข้อมูลข่าวสารในรูปแบบต่าง ๆ  ที่ทำความเข้าใจได้  แต่เนื่องจากคอมพิวเตอร์เป็นเพียงเครื่องจักรที่ไม่สามารถเข้าใจความหมายของข้อมูลข่าวสารได้เช่นเดียวกับคน  จึงมีการกำหนดรูปแบบที่ใช้สื่อความหมายของข้อมูลข้าวสารให้คอมพิวเตอร์กับผู้ใช้งานเข้าในตรงกันเรียกว่า โครงสร้างข้อมูลหรือชนิดข้อมูล โดยแบ่งออกได้เป็นดังนี้
         1.บิต (Bit) 
         2.ไบต์ (Byte) 
         3.เลขจำนวนเต็ม (Integer) 

         4. เลขจำนวนจริง (Real Number) 
         5.ตัวอักษร (Character) 

โครงสร้างข้อมูลกับภาษาเขียนโปรแกรม
          ภาษาเขียนโปรแกรม (Programming Language) ช่วย ให้ผู้เขียนโปรแกรมสามารถกำหนดโครงสร้างข้อมูลที่มีความหมายให้กับตำแปร เนื่องจากตัวแปรเหล่านี้ต้องเก็บค่าตามลักษณะของโครงสร้างข้อมูลที่ได้กำหนด มาและส่วนของการปฏิบัติการที่ช่วยให้การทำงานกับโครงสร้างข้อมูลมีความถูก ต้อง ภาษาเขียนโปรแกรมหลายภาษาจะมีแนวทางที่แตกต่างกันในการกำหนดโครงสร้างข้อมูล มาให้ใช้ เช่น ภาษาซี(C) อนุญาตให้โครงสร้างข้อมูลตัวอักษรกับเลขจำนวนเต็มสามารถใช้ร่วมกันและคำนวณได้ ภาษาปาสคาล (Pascal) จะต้องประกาศตัวแปรอย่างชัดเจนว่ากำหนดโครงสร้างข้อมูลเป็นแบบใด ขณะที่ภาษาฟอร์แทรน(Fortran) เป็นการประกาศปิดบังไว้จึงไม่ต้องกำหนดโครงสร้างข้อมูลให้กับตัวแปร 



อ้างอิง  http://itd.htc.ac.th/st_it51/it5144/npt/work/dsa/data/l1.html