ชีวิตไม่มีคำว่าท้อ ถ้ายังไม่ได้ลองทำมัน เอ๊า สู้ๆๆๆๆๆๆๆๆ

จะท้อไม่ได้ เราต้องทำได้

วันพุธที่ 29 มิถุนายน พ.ศ. 2554

บทที่ 3 อาร์เรย์ (Array)



อาร์เรย์ (Array)อาร์เรย์ (Array)
 แบ่งออกเป็น 2 ประเภท

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



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


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

คุณสมบัติอเรย์
1. อาร์เรย์เป็นตัวแทนกลุ่มของข้อมูลที่มีความสัมพันธ์กัน
2. สมาชิกในอาร์เรย์จะมีคุณสมบัติเหมือนๆ กัน
3. ขนาดของอาเรย์จะมีขนาดคงที่ static Data Sructure
4. ผู้ใช้สามารถอ้างอิงเพื่อเข้าถึงข้อมูลที่ต้องการได้ทันที
ลักษณะของ Arrays
- อาร์เรย์จะประกอบด้วยสมาชิกที่มีจำนวนคงที่ มีรูปแบบข้อมูลเป็นแบบเดียวกับสมาชิกแต่ละตัวใช้เนื้อที่จัดเก็บที่มีขนาดเท่ากัน เรียงต่อเนื่องในหน่วยความจำหลัก
- อาร์เรย์ หมายถึง การจัดชุดของข้อมูลที่เป็นชนิดเดียวกันในช่องตารางที่กำหนด โดยรูปแบบของช่องตารางที่จัดเก็บจะต้องเท่ากันทุกช่องมีตัวเลขกำกับทั้งแถวแลคอลัมภ์ เพื่อบอกตำแหน่งอีกทั้งยังสามารถแสดงได้ในรูปแบบของมิติ

ลักษณะที่สำคัญของโครงสร้างแบบอาร์เรย์
- เป็นโครงสร้างเชิงเส้น (Linear Structure) คือ มีรูปแบบของการจัดเก็บข้อมูลเป็นแนวเส้นตรงที่ต่อเนื่องกัน
- จัดเก็บข้อมูลแบบเรียงลำดับ (Order) คือนำข้อมูลที่ถูกนำเข้ามาจัดเก็บที่เป็นหมวดหมู่เดียวกัน หากบันทึกจะจัดเก็บเรียงแบบ
อันดับ เช่น เรียงลำดับของวันใน 1 สัปดาห์ Monday,Tuesday,WednesdaySunday
- ข้อมูลภายในช่องจัดเก็บเป็นชนิดเดียวกัน (Homogenous Data Type) คือ หากใน 1 อาร์เรย์มีช่องตาราง 5 ช่อง ทั้ง 5 ช่อง ก็ต้องมีการบันทึกเป็นตัวเลขหรือตัวอักษรอย่างใดอย่างหนึ่ง
- มีการกำหนดช่องตารางที่มีโครงสร้างตายตัว (Static Structure) คือช่องตารางที่ใช้ในการจัดเก็บข้อมูลทุกช่องต้องมีขนาดที่เท่ากัน มีการจัดเรียงในรูปแบบเชิงเส้น และกำหนดจำนวนของช่องไว้อย่างตายตัว

ขอบเขตของอาร์เรย์ (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 มิติ
ArrayName [ L : U ]
สูตรการคำนวณเพื่อค้นหาตำแหน่งแอดแดรสในหน่วยความจำของอาร์เรย์ 1 มิติ
      LOC(a[ i ]) = B + W(i + L)

อาร์เรย์ 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 มิติ
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]










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

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