วันอาทิตย์ที่ 23 เมษายน พ.ศ. 2560

บทที่2 อาร์เรย์

  อาร์เรย์ (Array)
   Array คือ ตัวแปรที่เป็นลักษณะของการจองพื้นที่ในหน่วยความจำติดกัน ด้วยจำนวนคงที่ ซึ่งเก็บข้อมูลได้หลายๆ ตัวแต่จะเป็นชนิดของข้อมูล(Data Type) เดียวกัน 

     โครงสร้างข้อมูลแบ่งออกเป็น 2 ประเภทใหญ่ๆด้วยกัน คือ
      ⧭โครงสร้างข้อมูลแบบเชิงเส้น
      ⧭โครงสร้างข้อมูลแบบไม่ใช่เชิงเส้น
     คุณสมบัติของอาร์เรย์
      ⥀ อาร์เรย์เป็นตัวแทนกลุ่มของข้อมูลที่มีความสัมพันธ์กัน
      ⥀ สมาชิกในอาร์เรย์จะมีคุณสมบัติหรือมีชนิดของข้อมูลที่เหมือนกันทั้งหมด
      ⥀ ขนาดของอาร์เรย์จะมีขนาดคงที่เมื่อได้ถูกสร้างขึ้น
      ⥀ อาร์เรย์เป็นโครงสร้างข้อมูลที่ผู้ใช้สามารถอ้างอิงเพื่อเข้าถึงข้อมูลที่ต้องการได้ทันที
      
       ⧪ Array Subscripts
      ในการอ้างใช้ตัวแปร Array จะประกอบด้วยชื่อตัวแปร Array และหมายเลขตัวชี้ 
      (Index or Subscript) อยู่ในเครื่องหมายก้ามปู [ ] ซึ่ง Subscript จะอยู่ในช่วงค่าในช่วง 0 ถึง n-1 โดยที่ n เป็นขนาดของ Array ที่ได้ระบุในการประกาศตัวแปร การอ้างถึงข้อมูลใน Array ช่องใด สามารถใส่เป็นเลขตรงๆ หรือเป็นตัวแปรก็ได้ 
     การจำลองรูปแบบของอาร์เรย
     ถ้าชื่อของอาร์เรย์คือ a แล้ว a[0] จะเป็นชื่อของสมาชิกตำแหน่งที่   0 หรือเป็นสมาชิกตัวที่ 1
     a[1] จะเป็นชื่อของสมาชิกตำแหน่งที่   1 หรือเป็นสมาชิกตัวที่ 2
     a[2] จะเป็นชื่อของสมาชิกตำแหน่งที่   2 หรือเป็นสมาชิกตัวที่ 3 
     a[n] จะเป็นชื่อของสมาชิกตำแหน่งที่   n หรือเป็นสมาชิกตัวที่ n+1
     ดรรชนีฐาน 0 (zero-based indexing)  คือ การเริ่มตำแหน่งของสมาชิกที่ 0
     ⧪โครงสร้างข้อมูลแบบอารเรย์ (Array)


      



int a[5] = {16,12,6,8,14};
                    char c[5]= {'A','E','I','O','U'};
    


       ⧪ มิติของอาร์เรย์
       อาร์เรย์มีลักษณะเป็นโครงสร้างเชิงเส้น (อนุกรม)สมาชิกของอาร์เรย์เป็นข้อมูลชนิดใดก็ได้  รวมทั้งเป็นอาร์เรย์ก็ได้ ( Array of arrays )อาร์เรย์หนึ่งมิติ int a[2] = {  1, 2  } ;
       อาร์เรย์สองมิติ = อาร์เรย์หนี่งมิติที่มีสมาชิกเป็นอาร์เรย์หนึ่งมิติ int a[2][3] = {{1, 2, 3}, {4, 5, 6}} ;
       อาร์เรย์สามมิติ = อาร์เรย์หนี่งมิติที่มีสมาชิกเป็นอาร์เรย์สองมิติ int a[2][3][4] = {{ {1,2,3,4}, {1,2,3,4},{1,2,3,4} }, { {1,2,3,4}, {1,2,3,4}, {1,2,3,4} }}  ;
    เลขดัชนีในอาร์เรย์ประกอบด้วยช่วงขอบเขตของค่า ซึ่งประกอบด้วยขอบเขตล่างสุดและขอบเขตบนสุด แต่ภาษาคอมพิวเตอร์เขตค่าดังกล่าวได้เพียงขอบเขตบนสุดเท่านั้นโดยขอบเขตล่างสุดจะถูกกำหนดคงที่เตรียมไว้อยู่แล้ว กำหนดเริ่มต้นไว้ที่ 0 หรือ 1 ขึ้นอยู่กับคอมไพเลอร์ของภาษานั่้นๆ
     ⧬ สูตรการคำนวณหาจำนวนสมาชิกของอาร์เรย์
        โดยที่  U  = ขอบเขตบนสุด  , L = ขอบเขตล่างสุด
        อาร์เรย์ 1 มิติ  ใช้สูตร         U – L + 1                                  
        อาร์เรย์ 2 มิติ  ใช้สูตร  ( U1 – L1 + 1) * ( U2 – L2 + 1)
    ⧬ การจัดเก็บอาร์เรย์ในหน่วยความจำ
    อาร์เรย์จัดเก็บอยู่ในหน่วยความจำคอมพิวเตอร์จะมีลักษณะเป็นลำดับต่อเนื่องกันใช้เนื้อที่ในการจัดเก็บข้อมูลสมาชิกของแต่ละตัวในขนาดเท่าๆกันสมาชิกทุกตัวในต้องเป็นข้อมูลชนิดเดียวกัน รูปแบบทั่วไปของโครงสร้างข้อมูลอาร์เรย์
    อาร์เรย์ 1 มิติ ใช้สูตร
     ➤ ArrayName [ L:U ]  a[1:10] = a[10]
    อาร์เรย์ 2 มิติ ใช้สูตร
     ➤ ArrayName [ L1:U1,L2:U2 ] a[4,5] = a[0:3,0:4] 
    อาร์เรย์ 3 มิติ ใช้สูตร
    ➤   ArrayName[ L1:U1,L2:U2 ,L3:U3 ] a[6,5,4] = a[0:5,0:4,0:3] 
    
    ⧬ การคำนวณหาตำแหน่งแอดเดรสในหน่วยความจำอาร์เรย์ 1 มิติ 
         ใช้สูตร LOC(a[i]) = B + w(i – L)  โดยที่
            LOC(a[i]) คือ ตำแหน่งแอดเดรสที่เก็บ a[i] ในหน่วยความจำ
             B คือ แอดเดรสเริ่มต้นของ a             
             w  คือ ขนาดของข้อมูลในการจัดเก็บ                           
             i คือ ตำแหน่งของสมาชิกในอาร์เรย์   L คือ ขอบเขตล่างสุด

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

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