- เป็นโครงสร้างข้อมูลที่มีลักษณะของการจองพื้นที่ในหน่วยความจำติดกัน ด้วยจำนวนคงที่ ซึ่งเก็บข้อมูลได้หลายๆ ตัวแต่จะเป็นชนิดของข้อมูล(Data Type) เดียวกัน เรียกว่า base type
- เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า Linear List
- เป็นโครงสร้างที่มีลักษณะ Random-access
- การอ้างถึงข้อมูลใน Array จะทำได้โดยการใช้ชื่อ Array และระบุ index หรือ subscript ของข้อมูลที่ต้องการ
- index ของ Array มีค่าตั้งแต่ 0 - n-1 (n คือจำนวนของข้อมูลทั้งหมดใน Array ซึ่งจะแสดงขนาดของ Array)
ประเภทของ Array
- คือ โครงสร้างข้อมูลแถวลำดับที่มีการจัดเก็บข้อมูลต่อเนื่องกันไปเป็นแถวต่อ เนื่องกันตลอด ซึ่งเปรียบเหมือนกับตารางแถวเดียว โดยมีดัชนีอ้างอิงเพียง 1 ตัว
- มีรูปแบบการประกาศตัวแปรเหมือนตัวแปรทั่วๆ ไปแต่มีการเพิ่มส่วนของการระบุจำนวนสมาชิก ว่าจะให้มีกี่ช่องไว้ในเครื่องหมายก้ามปู [ ]
Data-Type arrayName[arraySize]
Data-type คือ ประเภทของข้อมูล Array เช่น int,char,float
Array-name คือ ชื่อของ Array
arraySize คือ จำนวนสมาชิกนี้สามารถระบุเป็นตัวเลขจำนวนเต็มลงไปเลย หรือใส่เป็นค่าคงที่ก็ได้
การส่งผ่าน Array ไปยังฟังก์ชัน
void setArray( int b[ ], int n)
{
for (int i = 0; i< n; i++)
{ ................................................. {แสดงค่า ลำดับสมาชิกใน array}
................................................. {รับค่าจากผู้ใช้แล้วเก็บไว้เป็นสมาชิกของ array}
}
}
การเข้าถึงข้อมูลใน Array
การเข้าถึงข้อมูลที่อยู่ใน Array เพื่อที่จะนำไปสู่การค้นหา แก้ไข การเพิ่ม หรือการลดข้อมูลที่อยู่ในอาร์เรย์ ถ้ากำหนดให้ A คืออาร์เรย์หนึ่งมิติ เราสามารถเข้าถึงข้อมูลเพื่อทำงาน Process() ใดๆ กับข้อมูลทุกๆ ตัวที่อยู่ในอาร์เรย์
ตัวอย่าง
Traverse_Array(A)
set index to 1 {กำหนดค่าเริ่มต้นให้กับดัชนี}
do while (index < size-of-A) {ทำซ้ำขณะที่ยังไม่ครบทุกตัว}
Process(A[index]) {ทำงานกับข้อมูล}
set index to index + 1 {เปลี่ยนตำแหน่งดัชนีของข้อมูล}
enddo
Insertion
สมมติให้ Array มีขนาด N ตัว ถ้าต้องการเพิ่มข้อมูล Item เข้าไปใน Array โดยให้เข้าไปอยู่ในตำแหน่ง K เขียนเป็นอัลกอริธึมได้ดังตัวอย่าง
ตัวอย่าง
Insert_Array(A, N, K, Item)
set index to N {กำหนดตำแหน่งตัวสุดท้าย}
do while (index > =K) {ทำซ้ำขณะที่ยังไม่ถึงตำแหน่งที่ต้องการ}
set A[index+1] to A[index] {ย้ายข้อมูลไป 1 ตำแหน่ง}
set index to index – 1 {ลดตำแหน่งลง}
end do
set A[K] to Item {กำหนดค่า Item ในตำแหน่งที่ต้องการ}
set N to N+1 {เปลี่ยนขนาดข้อมูล}
Deleting
สมมติให้อาร์เรย์มีขนาด N ตัว ถ้าต้องการลบข้อมูลตำแหน่งที่ K ออกจากอาร์เรย์ เขียนเป็นอัลกอริธึมได้ดังตัวอย่าง
Delete_Array(A, N, K)
set index to K
do while (index <= N-1)
set A[index] to A[index+1]
set index to index+1
end do
set N to N - 1
ไม่มีความคิดเห็น:
แสดงความคิดเห็น