3.4 동적 배열에서 데이터의 삽입과 삭제 1
이번에는 동적 배열에서 데이터를 삽입하거나 삭제하는 연산을 알아보겠습니다. 데이터 삽입과 삭제는 두 가지 경우로 나누어서 생각할 수 있습니다. 데이터를 배열의 마지막에 추가하거나 삭제하는 경우와 배열의 중간에 추가하거나 삭제하는 경우입니다.
먼저 데이터를 배열의 마지막에 추가하거나 삭제하는 경우를 알아보겠습니다.
보통 배열이 확보한 메모리 공간을 capacity라고 하고, 채워진 데이터 크기를 size라고 합니다. size보다 capacity가 크다면, 즉 배열에 요소가 채워질 공간이 충분하다면 추가하려는 데이터를 배열의 마지막 요소 다음에 추가하면 됩니다. 따라서 빅오는 O(1)입니다. 매우 만족스러운 성능입니다.
삭제할 때도 마찬가지입니다. 배열의 마지막 요소만 삭제하면 되는데, 삭제라고 하면 메모리를
0으로 초기화한다든가 하는 조치를 취해야 할 것 같지만 단순히 동적 배열에서 요소 개수를 나타내는 size란 변수를 1 줄이기만 해도 충분합니다. 따라서 역시 빅오는 O(1)입니다.
그림으로 살펴볼까요?
▲ 그림 3-7 동적 배열의 삽입과 삭제 1