SlideShare a Scribd company logo
1 of 40
Data Structure
บทที่บทที่ 22
โครงสร้างข้อมูลโครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
(Array)(Array)
 โครงสร้างข้อมูลแถวอันดับโครงสร้างข้อมูลแถวอันดับ
 เป็นโครงสร้างข้อมูลแบบเชิงเส้นเป็นโครงสร้างข้อมูลแบบเชิงเส้น ((linear list)linear list)
 มีการจองพื้นที่หน่วยความจำามีการจองพื้นที่หน่วยความจำา (Memory)(Memory)
สำาหรับเก็บข้อมูลเป็นช่อง ๆ ที่มีขนาดเท่ากันสำาหรับเก็บข้อมูลเป็นช่อง ๆ ที่มีขนาดเท่ากัน
โดยต้องเก็บข้อมูลชนิดเดียวกันตลอดทั้งโดยต้องเก็บข้อมูลชนิดเดียวกันตลอดทั้ง
โครงสร้างโครงสร้าง
 พื้นที่แต่ละช่องข้อมูลจะอยู่ในตำาแหน่งที่ต่อเนื่องพื้นที่แต่ละช่องข้อมูลจะอยู่ในตำาแหน่งที่ต่อเนื่อง
กันไปตามลำาดับกันไปตามลำาดับ
 การเข้าถึงข้อมูลการเข้าถึงข้อมูล (Access)(Access) ข้อมูลใดๆในข้อมูลใดๆใน
โครงสร้าง สามารถกระทำาได้โดยการระบุโครงสร้าง สามารถกระทำาได้โดยการระบุ
Data Structure
โครงสร้างข้อมูลอาร์เรย์โครงสร้างข้อมูลอาร์เรย์
((Array)Array)
 จากรูปเป็นโครงสร้างข้อมูลแบบอาร์เรย์ ที่มีชื่อว่าจากรูปเป็นโครงสร้างข้อมูลแบบอาร์เรย์ ที่มีชื่อว่า AA
 ประกอบด้วยสมาชิกจำานวนประกอบด้วยสมาชิกจำานวน 55 ตัวตัว
 A[0]A[0] เก็บค่าเก็บค่า 1010
 A[1]A[1] เก็บค่าเก็บค่า 2020
 A[2]A[2] เก็บค่าเก็บค่า 3030
 A[3]A[3] เก็บค่าเก็บค่า 4040
 A[4]A[4] เก็บค่าเก็บค่า 5050
 โดยแสดงการเก็บข้อมูลในหน่วยความจำา เนื่องจากการเก็บข้อมูลแบบโดยแสดงการเก็บข้อมูลในหน่วยความจำา เนื่องจากการเก็บข้อมูลแบบ
อาร์เรย์จะเก็บแบบต่อเนื่องกันอาร์เรย์จะเก็บแบบต่อเนื่องกัน
Data Structure
โครงสร้างข้อมูลอาร์เรย์โครงสร้างข้อมูลอาร์เรย์
((Array)Array)
ประเภทของโครงสร้างประเภทของโครงสร้าง
ข้อมูลอาร์เรย์ข้อมูลอาร์เรย์
 โครงสร้างข้อมูลอาร์เรย์หนึ่งมิติโครงสร้างข้อมูลอาร์เรย์หนึ่งมิติ (One-(One-
Dimensional Array)Dimensional Array)
 โครงสร้างข้อมูลอาร์เรย์หลายมิติโครงสร้างข้อมูลอาร์เรย์หลายมิติ (Multi-(Multi-
Dimensional Array)Dimensional Array)
 โครงสร้างข้อมูลอาร์เรย์สองมิติโครงสร้างข้อมูลอาร์เรย์สองมิติ ((Two-Two-
Dimensional Array)Dimensional Array)
 โครงสร้างข้อมูลอาร์เรย์สามมิติโครงสร้างข้อมูลอาร์เรย์สามมิติ ((Three-Three-
Dimensional Array)Dimensional Array)
Data Structure
โครงสร้างข้อมูลอาร์เรย์หนึ่งมิติโครงสร้างข้อมูลอาร์เรย์หนึ่งมิติ (One-(One-
Dimension Array)Dimension Array)
 รูปแบบการประกาศอาร์เรย์รูปแบบการประกาศอาร์เรย์
type array-name[array-size]type array-name[array-size]
typetype คือคือ ชนิดของข้อมูลของสมาชิกในชนิดของข้อมูลของสมาชิกใน
อาร์เรย์อาร์เรย์
array-sizearray-size คือคือ จำานวนสมาชิกจำานวนสมาชิก
 ในภาษาในภาษา CC สามารถประกาศได้ดังตัวอย่างสามารถประกาศได้ดังตัวอย่าง
ต่อไปนี้ต่อไปนี้
int a[10] ;int a[10] ;
Data Structure
แสดงการจัดเก็บแสดงการจัดเก็บ
อาร์เรย์อาร์เรย์
11 มิติมิติ A[10]A[10] ในใน
หน่วยความจำาหน่วยความจำา
Data Structure
โครงสร้างข้อมูลอาร์เรย์หนึ่งมิติโครงสร้างข้อมูลอาร์เรย์หนึ่งมิติ (One-(One-
Dimension Array)Dimension Array)
Base[A]Base[A] หมายถึงหมายถึง
ตำาแหน่งตำาแหน่ง AddressAddress เริ่มเริ่ม
ต้นในต้นใน Array (BaseArray (Base
Address)Address)
dsize หมายถึงหมายถึง
ขนาดของข้อมูลในขนาดของข้อมูลใน ArrayArray
((ขึ้นอยู่กับชนิดข้อมูลที่ขึ้นอยู่กับชนิดข้อมูลที่
กำาหนด ว่าใช้เนื้อที่กำาหนด ว่าใช้เนื้อที่
 การอ้างถึงสมาชิกการอ้างถึงสมาชิก A[0]A[0] จะมีตำาแหน่งที่อยู่เป็นจะมีตำาแหน่งที่อยู่เป็น
Base[A]Base[A] การอ้างถึงสมาชิกการอ้างถึงสมาชิก A[1]A[1] จะมีตำาแหน่งจะมีตำาแหน่ง
ที่อยู่เป็นที่อยู่เป็น Base[A] + dsizeBase[A] + dsize
 การอ้างถึงสมาชิกการอ้างถึงสมาชิก A[2]A[2] จะมีตำาแหน่งที่อยู่เป็นจะมีตำาแหน่งที่อยู่เป็น
Base[A] + 2Base[A] + 2 * dsize* dsize
 ดังนั้นการอ้างถึง สมาชิกดังนั้นการอ้างถึง สมาชิก A[i]A[i] จะมีตำาแหน่งที่จะมีตำาแหน่งที่
อยู่เป็นอยู่เป็น
Base[A] + iBase[A] + i * dsize* dsize
 คอมพิวเตอร์จะใช้วิธีนี้ในการคำานวณหาคอมพิวเตอร์จะใช้วิธีนี้ในการคำานวณหา
ตำาแหน่งของข้อมูล เมื่อโปรแกรมมีการอ้าง
Data Structure
โครงสร้างข้อมูลอาร์เรย์หนึ่งมิติโครงสร้างข้อมูลอาร์เรย์หนึ่งมิติ (One-(One-
Dimension Array)Dimension Array)
การกำาหนดค่าเริ่มต้นให้กับการกำาหนดค่าเริ่มต้นให้กับ
อาร์เรย์อาร์เรย์
typetype__specifier array_namespecifier array_name [size1]…[sizeN] =[size1]…[sizeN] =
{value_list};{value_list};
 ค่าระหว่างค่าระหว่าง Value_listValue_list แต่ละตัวจะต้องถูกคั่นด้วยแต่ละตัวจะต้องถูกคั่นด้วย
เครื่องหมาย คอมม่าเครื่องหมาย คอมม่า (,)(,) ซึ่งใช้บรรจุค่าโดยเริ่มตั้งแต่ซึ่งใช้บรรจุค่าโดยเริ่มตั้งแต่
ตำาแหน่งแรกของอาร์เรย์เรื่อยไปเป็นลำาดับดังตำาแหน่งแรกของอาร์เรย์เรื่อยไปเป็นลำาดับดัง
ตัวอย่างตัวอย่าง
 float mark[5] ={1.1,3.3,5.5,7.7,9.9};float mark[5] ={1.1,3.3,5.5,7.7,9.9};
 โดยค่าที่เราทำาการกำาหนดไว้ในบัญชีรายการเริ่มโดยค่าที่เราทำาการกำาหนดไว้ในบัญชีรายการเริ่ม
ต้นจะทำาการกำาหนดให้กับสมาชิกในอาร์เรย์ตามต้นจะทำาการกำาหนดให้กับสมาชิกในอาร์เรย์ตาม
ลำาดับที่ได้ทำาการขึ้นบัญชีเอาไว้ลำาดับที่ได้ทำาการขึ้นบัญชีเอาไว้
Data Structure
ชนิดข้อมูล ขนาด( )ไบต์ ค่าที่เก็บ
char 1 ตัวอักษรASCII1 0 255ตัวตั้งแต่ ถึง
int 2 32767 –32768ค่าจำานวนเต็มตั้งแต่ ถึง
short 2 32767 –32768ค่าจำานวนเต็มตั้งแต่ ถึง
long 4 ค่าจำานวนเต็มตั้งแต่2147483647 –2147483648ถึง
unsigned unsignedint 2
unsignedshort 2
unsignedlong 4
0 65535ค่าจำานวนเต็มตั้งแต่ ถึง
0 65535ค่าจำานวนเต็มตั้งแต่ ถึง
0 4294967295ค่าจำานวนเต็มตั้งแต่ ถึง
float 4 3.4ค่าจำานวนจริงตั้งแต่ x10-38
3.4ถึง x1038
double 8 ค่าจำานวนจริงตั้งแต่1.7x10-308
ถึง1.7x10308
การกำาหนดค่าเริ่มต้นให้กับการกำาหนดค่าเริ่มต้นให้กับ
อาร์เรย์อาร์เรย์
Data Structure
ตารางแสดงชนิดข้อมูลในภาษาตารางแสดงชนิดข้อมูลในภาษา CC
โปรแกรมการกำาหนดค่าเริ่มต้นของอาร์เรย์โปรแกรมการกำาหนดค่าเริ่มต้นของอาร์เรย์
void main( )void main( )
{{
int sum[5] = {1,2,3,4,5};int sum[5] = {1,2,3,4,5};
}}
หรือหรือ
void main( )void main( )
{{
int sum[ ] = {1,2,3,4,5};int sum[ ] = {1,2,3,4,5};
}}
การกำาหนดค่าเริ่มต้นให้กับการกำาหนดค่าเริ่มต้นให้กับ
อาร์เรย์อาร์เรย์
Data Structure
Data Structure
การกำาหนดค่าเริ่มต้นให้กับการกำาหนดค่าเริ่มต้นให้กับ
อาร์เรย์อาร์เรย์
ExampleExample
กำาหนดกำาหนด Base[A] = 7000Base[A] = 7000
int sum [5]int sum [5] ==
{1,2,3,4,5}{1,2,3,4,5}
intint เป็นข้อมูลจำานวนเต็ม ใช้เป็นข้อมูลจำานวนเต็ม ใช้
เนื้อที่เนื้อที่ 22 bytesbytes
Sum[Sum[
0]0]
Sum[Sum[
1]1]
Sum[Sum[
2]2]
Sum[Sum[
3]3]
Sum[Sum[
4]4]
70007000
70027002
70047004
70067006
70087008
BaseBase
addressaddress
MemoryMemory ArrayArray
11
22
33
44
55
ต้องการทราบตำาแหน่งของต้องการทราบตำาแหน่งของ
sum[3]sum[3]
สามารถคำานวณได้จากสามารถคำานวณได้จาก
Base[A] + i * dsizeBase[A] + i * dsize
 มีลักษณะเป็นแบบเมทริกซ์มีลักษณะเป็นแบบเมทริกซ์ ((Matrix)Matrix)
 หรือการจัดเก็บข้อมูลแบบตารางสองทางหรือการจัดเก็บข้อมูลแบบตารางสองทาง
 คือข้อมูลจะมีการจัดเรียงตามแนวแถวและแนวคือข้อมูลจะมีการจัดเรียงตามแนวแถวและแนว
หลักหลัก
 การอ้างถึงข้อมูลใดๆ จะต้องอ้างถึงตำาแหน่งแถวการอ้างถึงข้อมูลใดๆ จะต้องอ้างถึงตำาแหน่งแถว
((Row)Row) และสดมภ์และสดมภ์ (Column)(Column)
Data Structure
โครงสร้างข้อมูลอาร์เรย์สองมิติโครงสร้างข้อมูลอาร์เรย์สองมิติ (Two-(Two-
Dimension Array)Dimension Array)
Data Structure
โครงสร้างข้อมูลอาร์เรย์สองมิติโครงสร้างข้อมูลอาร์เรย์สองมิติ (Two-(Two-
Dimension Array)Dimension Array)
ColuColu
mn 1mn 1
ColuColu
mn 2mn 2
ColuColu
mn 3mn 3
ColuColu
mn nmn n
RowRow
11
RowRow
22
RowRow
33
RowRow
nn
 การประกาศอาร์เรย์การประกาศอาร์เรย์ 22 มิติมีดังนี้มิติมีดังนี้
int a [3] [5];int a [3] [5];
 โดยค่าโดยค่า 33 หมายถึงจำานวนแถวหมายถึงจำานวนแถว ((Row)Row)
 ค่าค่า 55 หมายถึงจำานวนสดมภ์หมายถึงจำานวนสดมภ์ (Column)(Column)
 y = a [i] [j] ;y = a [i] [j] ;
 หมายถึงการนำาค่าจากอาร์เรย์หมายถึงการนำาค่าจากอาร์เรย์ aa แถวที่แถวที่ ii สดมภ์ที่สดมภ์ที่ jj
มาเก็บไว้ที่มาเก็บไว้ที่ yy
Data Structure
โครงสร้างข้อมูลอาร์เรย์สองมิติโครงสร้างข้อมูลอาร์เรย์สองมิติ (Two-(Two-
Dimension Array)Dimension Array)
การแทนโครงสร้างข้อมูลการแทนโครงสร้างข้อมูล
อาร์เรย์อาร์เรย์ 22 มิติมิติ
 การแทนโครงสร้างข้อมูลอาร์เรย์สองมิติแบบการแทนโครงสร้างข้อมูลอาร์เรย์สองมิติแบบ
ใช้แถวเป็นหลักใช้แถวเป็นหลัก
((Row MajorRow Major))
 การแทนโครงสร้างข้อมูลอาร์เรย์สองมิติแบบการแทนโครงสร้างข้อมูลอาร์เรย์สองมิติแบบ
ใช้สดมภ์เป็นหลักใช้สดมภ์เป็นหลัก ((Column MajorColumn Major))
Data Structure
 ใช้วิธีการเก็บข้อมูลทีละแถวเรียงต่อเนื่องกันไปใช้วิธีการเก็บข้อมูลทีละแถวเรียงต่อเนื่องกันไป
 โดยจะเริ่มตั้งแต่ค่าแรกของแถวที่โดยจะเริ่มตั้งแต่ค่าแรกของแถวที่ 00 หลักที่หลักที่ 00
ค่าที่ค่าที่ 22 ของแถวที่ของแถวที่ 00 หลักที่หลักที่ 11ค่าที่ค่าที่ 33 ของแถวของแถว
ที่ที่ 00 หลักที่หลักที่ 22 ค่าที่ค่าที่ 44 ของแถวที่ของแถวที่ 00 หลักที่หลักที่ 33
และค่าที่และค่าที่ 55 ของแถวที่ของแถวที่ 00 หลักที่หลักที่ 44
 จากนั้น ก็เลื่อนมาเก็บค่า ที่ แถวที่จากนั้น ก็เลื่อนมาเก็บค่า ที่ แถวที่ 11เรื่อยไปเช่นเรื่อยไปเช่น
นี้จนหมดค่าที่เก็บอยู่ในอาร์เรย์นี้จนหมดค่าที่เก็บอยู่ในอาร์เรย์
 สรุปก็คือการจัดให้สมาชิกเรียงต่อเนื่องกันไปทีสรุปก็คือการจัดให้สมาชิกเรียงต่อเนื่องกันไปที
ละแถวรวมเป็นแถวเดียวละแถวรวมเป็นแถวเดียว
 ลักษณะการจัดเก็บข้อมูลแต่ละแถวต่อๆ กันไปลักษณะการจัดเก็บข้อมูลแต่ละแถวต่อๆ กันไป
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 22
มิติ แบบมิติ แบบ Row MajorRow Major
Data Structure
Data Structure
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 22
มิติ แบบมิติ แบบ Row MajorRow Major
a[0] [0]a[0] [0]
a[0] [1]a[0] [1]
a[0] [2]a[0] [2]
a[0] [3]a[0] [3]
a[1] [0]a[1] [0]
a[1] [1]a[1] [1]
a[1] [2]a[1] [2]
a[1] [3]a[1] [3]
แถวที่แถวที่ 00
แถวที่แถวที่
11
แสดง array
การคำานวณหาการคำานวณหา
ตำาแหน่งข้อมูลตำาแหน่งข้อมูล
(Addressing(Addressing
Function)Function)
Base [a] + (i * Co+ j)Base [a] + (i * Co+ j)
*dsize*dsize
 CoCo แทนค่า จำานวนสดมภ์ของอาร์เรย์ มีแทนค่า จำานวนสดมภ์ของอาร์เรย์ มี
ค่าเท่ากับค่าเท่ากับ Uc + 1Uc + 1
 UcUc แทนค่า ขอบเขตบนในสดมภ์แทนค่า ขอบเขตบนในสดมภ์
 dsizedsize แทนค่า ขนาดของข้อมูลแต่ละตัวในแทนค่า ขนาดของข้อมูลแต่ละตัวใน
Data Structure
การคำานวณหาขนาดของหน่วยความการคำานวณหาขนาดของหน่วยความ
จำาที่ใช้เก็บอาร์เรย์จำาที่ใช้เก็บอาร์เรย์
แบบแบบ 22 มิติมิติ
(( Ur + 1) * (Uc + 1)) * dsize
 โดยโดย UrUr แทนค่า ขอบเขตบนในแถวแทนค่า ขอบเขตบนในแถว
Data Structure
 ใช้วิธีการเก็บข้อมูลทีละสดมภ์ใช้วิธีการเก็บข้อมูลทีละสดมภ์
 โดยจะเริ่มต้นจากสดมภ์ที่โดยจะเริ่มต้นจากสดมภ์ที่ 00 ค่าที่ค่าที่ 00
 สดมภ์ที่สดมภ์ที่ 00 ค่าที่ค่าที่ 11
 สดมภ์ที่สดมภ์ที่ 00 ค่าที่ค่าที่ 22
 จากนั้นจะต่อด้วยสดมภ์ที่จากนั้นจะต่อด้วยสดมภ์ที่ 11 ค่าที่ค่าที่ 00
 สดมภ์ที่สดมภ์ที่ 11 ค่าที่ค่าที่ 11
 สดมภ์ที่สดมภ์ที่ 11 ค่าที่ค่าที่ 22
 อย่างนี้ไปเรื่อยๆจนหมดค่าที่เก็บในอาร์เรย์อย่างนี้ไปเรื่อยๆจนหมดค่าที่เก็บในอาร์เรย์
 สรุปก็คือการจัดเก็บข้อมูลแบบให้สมาชิกเรียงต่อเนื่องสรุปก็คือการจัดเก็บข้อมูลแบบให้สมาชิกเรียงต่อเนื่อง
กันไปทีละหลักกันไปทีละหลัก
 รวมกันเป็นแถวเดียวรวมกันเป็นแถวเดียว
Data Structure
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 22 มิติมิติ
แบบแบบ Column MajorColumn Major
Data Structure
a[0] [0]a[0] [0]
a[1] [0]a[1] [0]
a[0] [1]a[0] [1]
a[1] [1]a[1] [1]
a[0] [2]a[0] [2]
a[1] [2]a[1] [2]
a[0] [3]a[0] [3]
a[1] [3]a[1] [3]
สดมภ์ที่สดมภ์ที่ 00
แสดง array
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 22 มิติมิติ
แบบแบบ Column MajorColumn Major
สดมภ์ที่สดมภ์ที่ 11
สดมภ์ที่สดมภ์ที่ 22
สดมภ์ที่สดมภ์ที่ 33
Base [a] + (j * Ro + i) *dsize
 RoRo แทนค่า จำานวนแถวของอาร์เรย์ มีแทนค่า จำานวนแถวของอาร์เรย์ มี
ค่าเท่ากับค่าเท่ากับ Ur + 1Ur + 1
 UrUr แทนค่า ขอบเขตบนในแถวแทนค่า ขอบเขตบนในแถว
 dsizedsize แทนค่า ขนาดของข้อมูลแต่ละตัวในแทนค่า ขนาดของข้อมูลแต่ละตัวใน
อาร์เรย์อาร์เรย์
การคำานวณหาการคำานวณหา
ตำาแหน่งข้อมูลตำาแหน่งข้อมูล
(Addressing(Addressing
Function)Function)
Data Structure
 ใช้วิธีการจากการจัดเก็บข้อมูลแบบอาร์เรย์สองใช้วิธีการจากการจัดเก็บข้อมูลแบบอาร์เรย์สอง
มิติที่มีลักษณะในการจัดเก็บในรูปแบบของมิติที่มีลักษณะในการจัดเก็บในรูปแบบของ
ตาราง โดย อาร์เรย์ตาราง โดย อาร์เรย์ 33 มิติจะเพิ่มจำานวนชั้นมิติจะเพิ่มจำานวนชั้น
ระนาบของตารางเข้าไประนาบของตารางเข้าไป (Plane)(Plane)
 คือการอ้างถึงข้อมูลหนึ่งๆ จะต้องอ้างถึงในคือการอ้างถึงข้อมูลหนึ่งๆ จะต้องอ้างถึงใน
 แนวแถวแนวแถว (Row)(Row)
 แนวสดมภ์แนวสดมภ์ (Column)(Column)
 แนวระนาบแนวระนาบ (Plane)(Plane)
Data Structure
โครงสร้างข้อมูลอาร์เรย์สามมิติโครงสร้างข้อมูลอาร์เรย์สามมิติ
(Three-Dimension Array)(Three-Dimension Array)
Data Structure
โครงสร้างข้อมูลอาร์เรย์สามมิติโครงสร้างข้อมูลอาร์เรย์สามมิติ
(Three-Dimension Array)(Three-Dimension Array)
แถวแถว 00
แถวแถว 11
สดมภ์สดมภ์ 00 สดมภ์สดมภ์ 11 สดมภ์สดมภ์ 22 สดมภ์สดมภ์ 33
ระนาบระนาบ 00
ระนาบระนาบ 11
ระนาบระนาบ 22a[0][0]a[0][0]
[0][0]
a[1][0]a[1][0]
[0][0]
a[0][1]a[0][1]
[0][0]
a[1][1]a[1][1]
[0][0]
a[0][2]a[0][2]
[0][0]
a[1][2]a[1][2]
[0][0]
a[0][3]a[0][3]
[0][0]
a[1][3]a[1][3]
[0][0]
ภาพแสดงโครงสร้างภาพแสดงโครงสร้าง Array 3Array 3 มิติมิติ
ขนาดขนาด a[2][4][3]a[2][4][3]
 การนำาข้อมูล เข้าหรือออกจากอาร์เรย์แบบการนำาข้อมูล เข้าหรือออกจากอาร์เรย์แบบ 33
มิติ ต้องมีการใช้ดัชนีมิติ ต้องมีการใช้ดัชนี (index)(index) จำานวนจำานวน 33 ตัวตัว
เพื่อทำาการระบุตำาแหน่งเช่นเดียวกัน เช่นเพื่อทำาการระบุตำาแหน่งเช่นเดียวกัน เช่น
 y = a [i] [j] [k] ;y = a [i] [j] [k] ;
 หมายถึง การกำาหนดค่าให้กับตัวแปรหมายถึง การกำาหนดค่าให้กับตัวแปร yy ด้วยค่าจากด้วยค่าจาก
อาร์เรย์อาร์เรย์ aa ที่ตำาแหน่งแถวที่ตำาแหน่งแถว ii สดมภ์สดมภ์ jj และระนาบและระนาบ kk
 ถ้าหากต้องการที่จะนำาค่าจากตัวแปรถ้าหากต้องการที่จะนำาค่าจากตัวแปร yy ไปเก็บไปเก็บ
ไว้ในอาร์เรย์ไว้ในอาร์เรย์ aa ที่แถวที่แถว ii สดมภ์สดมภ์ jj และระนาบและระนาบ kk
ต้องเขียนดังนี้ต้องเขียนดังนี้
 a [i] [j] [k] = y ;a [i] [j] [k] = y ;
Data Structure
โครงสร้างข้อมูลอาร์เรย์สามมิติโครงสร้างข้อมูลอาร์เรย์สามมิติ
(Three-Dimension Array)(Three-Dimension Array)
 การแทนโครงสร้างข้อมูลอาร์เรย์สามมิติแบบการแทนโครงสร้างข้อมูลอาร์เรย์สามมิติแบบ
ใช้แถวเป็นหลักใช้แถวเป็นหลัก
((Row MajorRow Major))
 การแทนโครงสร้างข้อมูลอาร์เรย์สามมิติแบบการแทนโครงสร้างข้อมูลอาร์เรย์สามมิติแบบ
ใช้สดมภ์เป็นหลักใช้สดมภ์เป็นหลัก ((Column MajorColumn Major))
การแทนโครงสร้างข้อมูลการแทนโครงสร้างข้อมูล
อาร์เรย์อาร์เรย์ 33 มิติมิติ
Data Structure
Data Structure
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 33
มิติ แบบมิติ แบบ Row MajorRow Major
a[0][0]a[0][0]
[0][0]a[0][1]a[0][1]
[0][0]a[0][2]a[0][2]
[0][0]a[0][3]a[0][3]
[0][0]a[1][0]a[1][0]
[0][0]a[1][1]a[1][1]
[0][0]a[1][2]a[1][2]
[0][0]a[1][3]a[1][3]
[0][0]
แถวที่แถวที่
00
แถวที่แถวที่
11
ระนาบระนาบ
ที่ที่ 00
ภาพแสดงโครงสร้างภาพแสดงโครงสร้าง Array 3Array 3 มิติมิติ
Data Structure
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 33
มิติ แบบมิติ แบบ Row MajorRow Major
a[0][0]a[0][0]
[1][1]a[0][1]a[0][1]
[1][1]a[0][2]a[0][2]
[1][1]a[0][3]a[0][3]
[1][1]a[1][0]a[1][0]
[1][1]a[1][1]a[1][1]
[1][1]a[1][2]a[1][2]
[1][1]a[1][3]a[1][3]
[1][1]
แถวที่แถวที่
00
แถวที่แถวที่
11
ระนาบระนาบ
ที่ที่ 11
ภาพแสดงโครงสร้างภาพแสดงโครงสร้าง Array 3Array 3 มิติมิติ
Data Structure
การแทนโครงสร้างข้อมูลอาร์เรย์การแทนโครงสร้างข้อมูลอาร์เรย์ 33
มิติ แบบมิติ แบบ Row MajorRow Major
a[0][0]a[0][0]
[2][2]a[0][1]a[0][1]
[2][2]a[0][2]a[0][2]
[2][2]a[0][3]a[0][3]
[2][2]a[1][0]a[1][0]
[2][2]a[1][1]a[1][1]
[2][2]a[1][2]a[1][2]
[2][2]a[1][3]a[1][3]
[2][2]
แถวที่แถวที่
00
แถวที่แถวที่
11
ระนาบระนาบ
ที่ที่ 22
ภาพแสดงโครงสร้างภาพแสดงโครงสร้าง Array 3Array 3 มิติมิติ
 การคำานวณหาตำาแหน่งของข้อมูลในอาร์เรย์การคำานวณหาตำาแหน่งของข้อมูลในอาร์เรย์ aa
[i] [j] [k][i] [j] [k] สามารถได้จากสูตรสามารถได้จากสูตร
Base[A]+ (i * Co + j + k * P) * dsizeBase[A]+ (i * Co + j + k * P) * dsize
 เมื่อเมื่อ i, j, ki, j, k เป็นค่าที่ประกาศในอาร์เรย์เป็นค่าที่ประกาศในอาร์เรย์
 CoCo แทนค่าจำานวนสดมภ์ของอาร์เรย์ มีค่าแทนค่าจำานวนสดมภ์ของอาร์เรย์ มีค่า
เท่ากับเท่ากับ Uc + 1Uc + 1
 PP แทนค่า จำานวนข้อมูลทั้งหมดในแต่ละระนาบแทนค่า จำานวนข้อมูลทั้งหมดในแต่ละระนาบ
มีค่าเท่ากับมีค่าเท่ากับ
(Ur +1) * (Uc +1)(Ur +1) * (Uc +1)
การคำานวณหาการคำานวณหา
ตำาแหน่งข้อมูลตำาแหน่งข้อมูล
(Addressing(Addressing
Function)Function)
Data Structure
(Ur + 1) * (Uc + 1) * (Up + 1) *(Ur + 1) * (Uc + 1) * (Up + 1) *
dsizedsize
 UrUr แทนค่า ขอบเขตบนในแถวแทนค่า ขอบเขตบนในแถว
 UcUc แทนค่า ขอบเขตบนในสดมภ์แทนค่า ขอบเขตบนในสดมภ์
 UpUp แทนค่า ขอบเขตบนในระนาบแทนค่า ขอบเขตบนในระนาบ
 dsizedsize แทนค่า ขนาดข้อมูลแต่ละตัวในแทนค่า ขนาดข้อมูลแต่ละตัวใน
อาร์เรย์ หน่วยเป็นไบต์อาร์เรย์ หน่วยเป็นไบต์ (Byte)(Byte)
การคำานวณหาขนาดของหน่วยความการคำานวณหาขนาดของหน่วยความ
จำาที่ใช้เก็บอาร์เรย์จำาที่ใช้เก็บอาร์เรย์
แบบแบบ 33 มิติมิติ
Data Structure
 เมตริกซ์เมตริกซ์ (matrix)(matrix)
 อาร์เรย์สามเหลี่ยมอาร์เรย์สามเหลี่ยม (Triangular Array)(Triangular Array)
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
Data Structure
AlgorithmAlgorithm การบวกการบวก
เมตริกซ์เมตริกซ์Addmatrix(m,n)Addmatrix(m,n)
for i = 0 to m-1dofor i = 0 to m-1do
for j = 0 to n-1 dofor j = 0 to n-1 do
C[I,j] = A[I,j]+B[I,j]C[I,j] = A[I,j]+B[I,j]
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
การเพิ่มข้อมูลในการเพิ่มข้อมูลใน
อาร์เรย์อาร์เรย์
1010 2020 4040 5050 ว่างว่าง ว่างว่าง
3030
 กำาหนดตำาแหน่งที่ต้องการกำาหนดตำาแหน่งที่ต้องการ
เพิ่มข้อมูลเพิ่มข้อมูล
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
การเพิ่มข้อมูลในการเพิ่มข้อมูลใน
อาร์เรย์อาร์เรย์
1010 2020 4040 5050 ว่างว่าง
3030
 จัดเตรียมเนื้อที่ว่างจัดเตรียมเนื้อที่ว่าง
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
การเพิ่มข้อมูลในการเพิ่มข้อมูลใน
อาร์เรย์อาร์เรย์
 เพิ่มข้อมูลข้าไปในอาร์เรย์เพิ่มข้อมูลข้าไปในอาร์เรย์
1010 2020 3030 4040 5050 ว่างว่าง
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
AlgorithmAlgorithm การเพิ่มข้อมูลการเพิ่มข้อมูล
ในอาร์เรย์ในอาร์เรย์
int data[Maxdata] =int data[Maxdata] =
{5,4,3,4,7}{5,4,3,4,7}
int newdata = 888;int newdata = 888;
int position = 2;int position = 2;
for (i = Maxdatafor (i = Maxdata
-1;i>=position;i--)-1;i>=position;i--)
data[i]=data[i-1];data[i]=data[i-1];
data[i] = newdata;data[i] = newdata;
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
การลบข้อมูลในการลบข้อมูลใน
อาร์เรย์อาร์เรย์
1010 2020 4040 5050 ว่างว่าง ว่างว่าง
 กำาหนดตำาแหน่งที่ต้องการลบกำาหนดตำาแหน่งที่ต้องการลบ
ข้อมูลข้อมูล
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
การเพิ่มข้อมูลในการเพิ่มข้อมูลใน
อาร์เรย์อาร์เรย์
1010 3030 4040 5050 ว่างว่าง
2020
 ลบข้อมูลลบข้อมูล
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
การลบข้อมูลในการลบข้อมูลใน
อาร์เรย์อาร์เรย์
1010 3030 4040 5050 ว่างว่าง
 เลื่อนข้อมูลมาทางซ้ายเลื่อนข้อมูลมาทางซ้าย
1010 3030 4040 5050 ว่างว่าง ว่างว่าง
Data Structure
การประยุกต์ใช้โครงสร้างข้อมูลการประยุกต์ใช้โครงสร้างข้อมูล
อาร์เรย์อาร์เรย์
AlgorithmAlgorithm การลบข้อมูลการลบข้อมูล
ในอาร์เรย์ในอาร์เรย์
int data[Maxdata] =int data[Maxdata] =
{5,4,3,4,7}{5,4,3,4,7}
int position = 3;int position = 3;
for (i = positionfor (i = position
;i<Maxdata ;i++);i<Maxdata ;i++)
data[i-1]=data[i];data[i-1]=data[i];
data[i-1] = 0;data[i-1] = 0;

More Related Content

Viewers also liked

สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)tumetr
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1Little Tukta Lita
 
แสตก
แสตกแสตก
แสตกNu_waew
 
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)tumetr
 
การจัดเรียงข้อมูล (sorting)
การจัดเรียงข้อมูล (sorting)การจัดเรียงข้อมูล (sorting)
การจัดเรียงข้อมูล (sorting)tumetr
 
การวิเคราะห์อัลกอริทึม
การวิเคราะห์อัลกอริทึมการวิเคราะห์อัลกอริทึม
การวิเคราะห์อัลกอริทึมguestc3a629f6
 
Infix to-postfix examples
Infix to-postfix examplesInfix to-postfix examples
Infix to-postfix examplesmua99
 
Infix prefix postfix expression -conversion
Infix  prefix postfix expression -conversionInfix  prefix postfix expression -conversion
Infix prefix postfix expression -conversionSyed Mustafa
 

Viewers also liked (12)

Array
ArrayArray
Array
 
สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)สแตกและคิว (Stack & queue)
สแตกและคิว (Stack & queue)
 
Array 2
Array 2Array 2
Array 2
 
Array1
Array1Array1
Array1
 
Computer
ComputerComputer
Computer
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1บทที่  5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง 6.1
 
แสตก
แสตกแสตก
แสตก
 
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
โครงสร้างข้อมูลแบบลิงค์ลิสต์ (linklist)
 
การจัดเรียงข้อมูล (sorting)
การจัดเรียงข้อมูล (sorting)การจัดเรียงข้อมูล (sorting)
การจัดเรียงข้อมูล (sorting)
 
การวิเคราะห์อัลกอริทึม
การวิเคราะห์อัลกอริทึมการวิเคราะห์อัลกอริทึม
การวิเคราะห์อัลกอริทึม
 
Infix to-postfix examples
Infix to-postfix examplesInfix to-postfix examples
Infix to-postfix examples
 
Infix prefix postfix expression -conversion
Infix  prefix postfix expression -conversionInfix  prefix postfix expression -conversion
Infix prefix postfix expression -conversion
 

Similar to บทที่2 โครงสร้างข้อมูลอาร์เรย์

บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระMook Sasivimon
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงdefeat overcome
 
ตัวแปรชุด
ตัวแปรชุดตัวแปรชุด
ตัวแปรชุดPear Pimnipa
 
อาเรย์ (Array)
อาเรย์ (Array)อาเรย์ (Array)
อาเรย์ (Array)tumetr
 
งานกลุ่มคอม กลุ่ม-5
งานกลุ่มคอม กลุ่ม-5งานกลุ่มคอม กลุ่ม-5
งานกลุ่มคอม กลุ่ม-5Thachanok Plubpibool
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]Mook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรMook Sasivimon
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระHeart Kantapong
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระMook Sasivimon
 
ตัวแปรชุดนำเสนอ
ตัวแปรชุดนำเสนอตัวแปรชุดนำเสนอ
ตัวแปรชุดนำเสนอPz'Peem Kanyakamon
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionIMC Institute
 
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระLacus Methini
 

Similar to บทที่2 โครงสร้างข้อมูลอาร์เรย์ (20)

งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8งานทำ Blog บทที่ 8
งานทำ Blog บทที่ 8
 
4
44
4
 
99
9999
99
 
งาน
งานงาน
งาน
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริงบทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
บทที่ 5 ข้อมูลชนิดอาร์เรย์และสตริง
 
ตัวแปรชุด
ตัวแปรชุดตัวแปรชุด
ตัวแปรชุด
 
อาเรย์ (Array)
อาเรย์ (Array)อาเรย์ (Array)
อาเรย์ (Array)
 
Presentation1
Presentation1Presentation1
Presentation1
 
บทที่ 5
บทที่ 5บทที่ 5
บทที่ 5
 
งานกลุ่มคอม กลุ่ม-5
งานกลุ่มคอม กลุ่ม-5งานกลุ่มคอม กลุ่ม-5
งานกลุ่มคอม กลุ่ม-5
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ[w]
 
ข้อมูลชนิดอาร์เรย์และสตริง
ข้อมูลชนิดอาร์เรย์และสตริงข้อมูลชนิดอาร์เรย์และสตริง
ข้อมูลชนิดอาร์เรย์และสตริง
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขรบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขร
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระบทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
บทที่ 5 ตัวแปรชุดและตัวแปรกลุ่มอักขระ
 
ตัวแปรชุดนำเสนอ
ตัวแปรชุดนำเสนอตัวแปรชุดนำเสนอ
ตัวแปรชุดนำเสนอ
 
ตัวแปลชุดและตัวแปลอักขระ
ตัวแปลชุดและตัวแปลอักขระตัวแปลชุดและตัวแปลอักขระ
ตัวแปลชุดและตัวแปลอักขระ
 
Java Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and CollectionJava Programming [8/12] : Arrays and Collection
Java Programming [8/12] : Arrays and Collection
 
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระตัวแปรชุดและตัวแปรกลุ่มอิสระ
ตัวแปรชุดและตัวแปรกลุ่มอิสระ
 

บทที่2 โครงสร้างข้อมูลอาร์เรย์