자료구조
자료구조 - 배열
tita
2024. 6. 6. 14:00
[배열 (Array) ]
배열은 동일한 데이터 타입의 요소들이 연속된 메모리 공간에 저장된 데이터 구조입니다. 배열의 각 요소는 인덱스를 사용하여 접근할 수 있으며, 인덱스는 0부터 시작합니다. 배열은 고정된 크기를 가지며, 한 번 선언되면 크기를 변경할 수 없습니다.
장점
- 연속된 메모리 배치로 인해 인덱스를 사용한 접근 속도가 빠릅니다.
- 데이터를 일괄적으로 처리하기에 용이합니다.
단점
- 크기가 고정되어 있어 유연성이 부족합니다.
- 삽입 및 삭제 작업이 비효율적입니다.
코드 예시를 통해 배열의 선언, 초기화와 접근에 대해 알아보겠습니다.
#include <iostream>
int main()
{
// 배열 선언 및 초기화
int arr[5] = {10, 20, 30, 40, 50};
// 배열 요소 접근 및 출력
std::cout << "배열의 요소: ";
for (int i = 0; i < 5; ++i)
{
std::cout << arr[i] << " ";
}
std::cout << std::endl;
// 배열 요소 변경
arr[2] = 100;
std::cout << "변경된 배열의 요소: ";
for (int i = 0; i < 5; ++i)
{
std::cout << arr[i] << " ";
}
std::cout << std::endl;
return 0;
}
[1차원 배열 (One-Dimensional Array) ]
1차원 배열은 단일 인덱스를 사용하여 요소에 접근할 수 있는 배열입니다. 배열의 요소들은 메모리에서 연속적으로 배치되며, 각 요소는 동일한 데이터 타입을 가집니다. 1차원 배열은 리스트나 벡터와 유사한 구조를 가집니다.
장점
- 간단하고 직관적이며, 선언과 초기화가 쉽습니다.
- 인덱스를 사용한 요소 접근 속도가 빠릅니다.
단점
- 크기가 고정되어 있어 유연성이 부족합니다.
- 삽입 및 삭제 작업이 비효율적입니다.
위의 배열 코드 예시가 1차원 배열과 동일합니다.
[2차원 배열 (Two-Dimensional Array) ]
2차원 배열은 행(row)과 열(column)을 가지는 배열로, 테이블이나 행렬과 유사한 구조를 가집니다. 2차원 배열은 두 개의 인덱스를 사용하여 요소에 접근할 수 있습니다. 첫 번째 인덱스는 행을, 두 번째 인덱스는 열을 나타냅니다.
장점
- 행렬, 테이블, 그래프 등 다양한 데이터 구조를 표현하는 데 유용합니다.
- 직관적인 데이터 배치와 접근이 가능합니다.
단점
- 메모리 사용량이 증가할 수 있습니다.
- 초기화가 번거로울 수 있습니다.
코드 예시를 통해 2차원 배열의 선언, 초기화와 접근을 알아보겠습니다.
#include <iostream>
int main()
{
// 2차원 배열 선언 및 초기화
int arr[3][4] =
{
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
// 2차원 배열 요소 접근 및 출력
std::cout << "2차원 배열의 요소:" << std::endl;
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 4; ++j)
{
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
// 2차원 배열 요소 변경
arr[1][2] = 100;
std::cout << "변경된 2차원 배열의 요소:" << std::endl;
for (int i = 0; i < 3; ++i)
{
for (int j = 0; j < 4; ++j)
{
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}
[1차원 배열과 2차원 배열의 차이점]
- 구조: 1차원 배열은 단일 인덱스를 사용하여 요소에 접근하는 반면, 2차원 배열은 두 개의 인덱스를 사용하여 요소에 접근합니다.
- 데이터 표현: 1차원 배열은 리스트나 벡터와 유사한 구조를 가지며, 2차원 배열은 테이블이나 행렬과 유사한 구조를 가집니다.
- 메모리 사용: 2차원 배열은 1차원 배열보다 메모리 사용량이 많을 수 있습니다.