배열 자료구조의 핵심 기본 연산
배열(Array)은 가장 기본적이면서도 폭넓게 활용되는 자료구조로, 프로그래밍에서 반드시 알아야 할 다음과 같은 핵심 연산들을 제공합니다.
- 순회(Traverse): 배열의 모든 요소를 처음부터 끝까지 차례대로 방문하며 확인
- 삽입(Insertion): 배열의 지정된 위치에 새로운 요소 추가
- 삭제(Deletion): 배열에서 특정 요소를 제거하고 뒤쪽 요소들의 위치를 앞으로 당김
- 검색(Search): 배열 내에서 원하는 값이 존재하는지 탐색
- 갱신(Update): 특정 위치의 요소 값을 새로운 값으로 변경
순회는 배열 전체를 훑어보는 작업입니다. 삽입은 원하는 위치에 요소를 넣는 것이고, 삭제는 요소를 제거한 뒤 나머지 요소들의 위치를 재조정하는 과정까지 포함합니다. 검색은 배열에 특정 값이 있는지 찾는 작업이며, 갱신은 주어진 위치의 요소 값을 수정하는 것을 의미합니다.
그럼 아래의 C++ 예제 코드를 통해 각 연산이 실제로 어떻게 동작하는지 살펴보겠습니다.
C++ 예제 코드
#include<iostream>
#include<vector>
using namespace std;
main(){
vector<int> arr;
// 요소 삽입
arr.push_back(10);
arr.push_back(20);
arr.push_back(30);
arr.push_back(40);
arr.push_back(50);
arr.push_back(60);
for(int i = 0; i<arr.size(); i++){ // 순회
cout << arr[i] << " ";
}
cout << endl;
// 요소 삭제
arr.erase(arr.begin() + 2);
arr.erase(arr.begin() + 3);
for(int i = 0; i<arr.size(); i++){ // 순회
cout << arr[i] << " ";
}
cout << endl;
arr[0] = 100; // 갱신
for(int i = 0; i<arr.size(); i++){ // 순회
cout << arr[i] << " ";
}
cout << endl;
}실행 결과
10 20 30 40 50 60 10 20 40 60 100 20 40 60
결과 해설
먼저 push_back() 함수로 10부터 60까지 6개의 정수를 배열에 삽입한 뒤 순회하여 출력했습니다. 그다음 erase() 함수를 사용해 인덱스 2와 3 위치의 요소(각각 30과 50)를 삭제했더니 배열은 '10 20 40 60'이 되었습니다. 마지막으로 arr[0] = 100 문장으로 첫 번째 요소의 값을 갱신하여 최종적으로 '100 20 40 60'이 출력되었습니다. 이처럼 배열의 기본 연산들은 실무에서도 매우 자주 활용되므로, 각 연산의 동작 원리를 정확히 이해해 두는 것이 중요합니다.