วันศุกร์ที่ 12 ธันวาคม พ.ศ. 2557

The Array Structure

  • เป็นโครงสร้างข้อมูลที่มีลักษณะของการจองพื้นที่ในหน่วยความจำติดกัน ด้วยจำนวนคงที่ ซึ่งเก็บข้อมูลได้หลายๆ ตัวแต่จะเป็นชนิดของข้อมูล(Data Type) เดียวกัน เรียกว่า base type
  • เป็นแบบหนึ่งของโครงสร้างที่เรียกว่า  Linear List
  • เป็นโครงสร้างที่มีลักษณะ Random-access
  • การอ้างถึงข้อมูลใน Array จะทำได้โดยการใช้ชื่อ Array และระบุ index หรือ subscript ของข้อมูลที่ต้องการ
  • index ของ Array มีค่าตั้งแต่ 0 - n-1  (n คือจำนวนของข้อมูลทั้งหมดใน Array ซึ่งจะแสดงขนาดของ Array) 
ประเภทของ Array
nArray หนึ่งมิติ

  •          คือ โครงสร้างข้อมูลแถวลำดับที่มีการจัดเก็บข้อมูลต่อเนื่องกันไปเป็นแถวต่อ เนื่องกันตลอด ซึ่งเปรียบเหมือนกับตารางแถวเดียว โดยมีดัชนีอ้างอิงเพียง 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


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

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