개념 가변 배열이라고도 불리며, 크기가 고정되어 있지 않은 배열이다. 배열을 조금 더 쉽고 활용도 높게 사용하기 위한 자료구조다. C++ STL에서의 vector, Java에서의 ArrayList 등이 해당된다. 특징 1. 배열이기 때문에 메모리가 연속적이다. 2. 일반 배열과는 다르게 배열의 데이터가 용량보다 많아지는 순간 배열을 더욱 크게 재할당 한다. 3. 일반 배열과는 다르게 중간에 데이터 삽입이 가능하며 데이터 손실이 없다. 4. 일반 배열과는 다르게 중간의 데이터 삭제가 일어날 경우, 빈 공간 없이 한 칸씩 당겨진다. 5. 요소의 삽입은 맨 뒤에 삽입할 경우 O(1), 이외에는 O(N) 이며 요소의 삭제는 맨 뒤를 삭제할 경우 O(1), 이외에는 O(N) 이다. 특정 원소 접근은 O(1) 이다..
[C] 동적 배열 (Dynamic Array) 개념 및 구현
개념 가변 배열이라고도 불리며, 크기가 고정되어 있지 않은 배열이다. 배열을 조금 더 쉽고 활용도 높게 사용하기 위한 자료구조다. C++ STL에서의 vector, Java에서의 ArrayList 등이 해당된다. 특징 1. 배열이기 때문에 메모리가 연속적이다. 2. 일반 배열과는 다르게 배열의 데이터가 용량보다 많아지는 순간 배열을 더욱 크게 재할당 한다. 3. 일반 배열과는 다르게 중간에 데이터 삽입이 가능하며 데이터 손실이 없다. 4. 일반 배열과는 다르게 중간의 데이터 삭제가 일어날 경우, 빈 공간 없이 한 칸씩 당겨진다. 5. 요소의 삽입은 맨 뒤에 삽입할 경우 O(1), 이외에는 O(N) 이며 요소의 삭제는 맨 뒤를 삭제할 경우 O(1), 이외에는 O(N) 이다. 특정 원소 접근은 O(1) 이다..
2023.03.22