วันศุกร์ที่ 24 มิถุนายน พ.ศ. 2554

อาร์เรย์ (Array)

โครงสร้างข้อมูลแบ่งออกเป็น 2 ประเภทใหญ่ๆ คือ

1. โครงสร้างข้อมูลแบบเชิงเส้น (Linear Lists) มีรูปแบบเป็นรายการต่อเนื่อง ข้อมูลที่จัดเก็บจะมีลักษณะเป็นแถวลำดับต่อเนื่อง เช่น อาร์เรย์(Array) สแต็ก(Stacks) และคิว(Queues) เป็นต้น

2. โครงสร้างข้อมูลแบบไม่เป็นเชิงเส้น (Non-Linear Lists) โครงสร้างข้อมูลชนิดนี้จะต้องข้ามกับแบบแรก เช่น ทรี(Trees) และกราฟ(Graphs) เป็นต้น

โครงสร้างข้อมูลแบบอาร์เรย์(Array)
 
         อาร์เรย์ คือ การรวมกลุ่มของตัวแปรที่สามารถใช้ตัวแปรชื่อเดียวแทนข้อมูลสมาชิกได้หลายๆตัวด้วยการใช้ดรรชนี(Index) หรือซับสคริปต์(Subscript) เป็นตัวอ้างอิงตำแหน่ง

คุณสมบัติสำคัญของอาร์เรย์

 1.อาร์เรย์เป็นตัวแทนของกลุ่มที่มีความสัมพันธ์กัน

2.มีชนิดข้อมูลเหมือนกันทั้งหมด

3.อาร์เรย์มีขนาดคงที่

4.ผู้ใช้สามารถอ้างอิงเพื่อเข้าถึงข้อมูลที่ต้องการได้ทันที

การอ้างอิงตำแหน่งสมาชิกในอาร์เรย์

     ต้องเริ่มต้นด้วยชื่ออาร์เรย์และตามด้วยเลขลำดับกำกับไว้ด้วย ซึ่งลำดับเหล่านี้สามารถเรียกได้หลายชื่อด้วยกัน เช่น ซัปสคริปต์ หรือเลขดรรชนี

ขอบเขตของอาร์เรย์ (Bounds)
  
-ภาษา C,C++,C#,JAVA    จะถูกกำหนดขอบเขตล่างสุดเท่ากับ 0

-ภาษา FRONTRAN      จะถูกกำหนดขอบเขตล่างสุดเท่ากับ 1

- ADA,PL/1,PASCAL สามารถทำการกำหนดขอบเขตล่างสุดและขอบเขตบนสุดของอาร์เรย์ได้ รวมถึงกำหนดขอบเขตค่าติดลบได้

การคำนวณจำนวนสามาชิกของอาร์เรย์ 1 มิติ

จำนวนสมาชิก  = U + L + 1

การคำนวณจำนวนสามาชิกของอาร์เรย์ 2 มิติ

จำนวนสมาชิก = (U1 – L1 + 1) x (U2 – L2 + 1)

การคำนวณจำนวนสามาชิกของอาร์เรย์ 3 มิติ

จำนวนสมาชิก = (U1 – L1 + 1) x (U2 – L2 + 1) x (U3 – L3 + 1)

การจัดเก็บอาร์เรย์ในหน่วยความจำ

อาร์เรย์ 1 มิติ  รูปแบบโครงสร้างข้อมูลอาร์เรย์ 1 มิติ คือ

ArrayName [ L : U ]

สูตรการคำนวณเพื่อค้นหาตำแหน่งแอดแดรสในหน่วยความจำของอาร์เรย์ 1 มิติ 

LOC(a[ i ])  = B + W(i + L)

 อาร์เรย์ 2 มิติ รูปแบบโครงสร้างข้อมูลอาร์เรย์ 2 มิติ คือ 

ArrayName [ L1 : U1, L2 : U2 ]

สูตรการคำนวณเพื่อค้นหาตำแหน่งแอดแดรสในหน่วยความจำของอาร์เรย์ 2 มิติ
- รูปแบบการเรียงแถวเป็นหลัก
LOC(K[ i,j ] ) = B + W[C(i – L1) + (j – L2) ]

โดยที่ C คือจำนวนคอลัมน์ของแถวลำดับ (R x C)

     - รูปแบบการเรียงคอลัมน์เป็นหลัก
LOC(K[ i,j ] ) = B + W[R(j – L2)]+ (i – L1) ]

โดยที่ R คือจำนวนแถวของแถวลำดับ (R x C)
 อาร์เรย์ 3 มิติ รูปแบบโครงสร้างข้อมูลอาร์เรย์ 3 มิติ คือ
ArrayName [ L1 : U1, L2 : U2, L3 : U3 ]
สูตรการคำนวณเพื่อค้นหาตำแหน่งแอดแดรสในหน่วยความจำของอาร์เรย์ 3 มิติ
- รูปแบบการเรียงแถวเป็นหลัก
LOC(S[ i,j,k ]  = B + [W x R x C(i – L1)]
                            + [W x C(j – L2)]
                            + [W(k - L3)]
- รูปแบบการเรียงคอลัมน์เป็นหลัก
LOC(S[ i,j,k ]  = B + [W x K x R x C(j – L2)]
                            + [W x K x R(i– L1)]
                            + [k - L3]











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

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