2차원, 3차원 배열의 순차 표현

Programming/Data Structure 2015. 11. 30. 23:09

<2차원 배열의 순차 표현>

2차원 배열의 구조를 논리적으로 표현할 때는 행과 열의 구조로 나타내지만, 실제로 메모리에 저장될 때는 1차원 순서로 저장된다.

첫번째 인덱스인 행을 기준으로 하는 행 우선 순서 방법과 마지막 인덱스인 열을 기준으로 하는 기준으

로 하는 열 우선 순서 방법이 있다.

int sale[2][4] = {{63, 84, 140, 130}, {157, 209, 251, 312}};





행 우선 순서 방법은 행을 기준으로 하여 같은 행 안에 있는 열을 먼저 저장하는 방법이다.

위 그림의 배열을 예로 들면 sale[0][0]=63 sale[0][1]= 84 sale[0][2]= 140 sale[0][3]= 130 sale[1][0]= 157 sale[1][1]= 209 sale[1][2]= 251 sale[1][3]=312

[행 우선 순서의 배열 위치를 계산 하는 방법]

시작주소 + (행번호 * 열 개수 + 열 번호) * 원소의 길이​

열 우선 순서 방법은 열을 기준으로 하여 같은 열 안에 있는 행을 먼저 저장하는 방법이다.

위 그림의 배열을 예로 들면 sale[0][0]=63 sale[1][0]=157 sale[0][1]=84sale[1][1] =209 sale[0][2]=140 sale[1][2]=251 sale[0][3]=130 sale[1][3]=312

[열 우선 순서의 배열 위치를 계산 하는 방법]

시작주소 + (열번호 * 행 개수 + 행 번호) * 원소의 길이



<3차원 배열의 순차 표현>

int sale[2][2][4] = {{{63, 84, 140, 130}, {157, 209, 251, 312}},

{{59, 80, 130, 135}, {149, 187, 239, 310}};



3차원 논리 구조를 1차원의 물리구조로 변환하는 방법은 2개다.

면 우선 순서 방법은 첫 번째 인덱스인 면을 기준으로 하는 방법이다.

sale[0][0][0]=63 sale[0][0][1]=84 sale[0][0][2]=140 sale[0][0][3]=130 sale[0][1][0]=157 sale[0][1][1]=209 sale[0][1][2]=251 sale[0][1][3]=312 sale[1][0][0]=59 sale[1][0][1]=80 sale[1][0][2]=130 sale[1][0][3]=135 ​sale[1][1][0]=149 sale[1][1][1]=187 sale[1][1][2]=239 sale[1][1][3]=310

[행 우선 순서의 배열 위치를 계산 하는 방법]

시작주소 + {(면번호 * 행의 개수​ *열의개수) + (행번호 * 열의 개수) + 열 번호} * 원소의 길이

열 우선 순서 방법은 마지막 인덱스 열을 기준으로 하는 방법이다.

​sale[0][0][0]=63 sale[1][0][0]=59 sale[0][1][0]=157 sale[1][1][0]=149 sale[0][0][1]=84 sale[1][0][1]=80 sale[1][1][1]=187 sale[0][0][2]=140 sale[1][0][2]=130 sale[0][1][2]=251 sale[1][1][2]=239 sale[0][0][3]=130 ​sale[1][0][3]=135 sale[0][1][3]=312 sale[1][1][3]=312 sale[1][1][3]=310

[열 우선 순서의 배열 위치를 계산 하는 방법]

시작주소 + {(열번호 * 면의 개수​ *행의개수) + (행번호 * 열의 개수) + 면 번호} * 원소의 길이








Copyrightⓒ2014 By 한빛아카데미(주)



'Programming > Data Structure' 카테고리의 다른 글

행렬(Matrix)  (0) 2015.12.01
다항식 순차 자료구조 표현  (0) 2015.11.30
선형 리스트  (1) 2015.11.30
추상 자료형, 알고리즘  (0) 2015.11.29
소프트웨어 생명 주기 6단계  (0) 2015.11.29
posted by 경원구