본문 바로가기
자료구조

[자료구조] 1. 배열(Array)

by 프링글's 2023. 1. 14.

배열의 정의

배열은 같은 자료형의 변수로 이루어진 요소가 직선모양으로 줄지어 있는 자료구조이다.

int arr[5];

위와 같이 선언하면 길이가 5인 int형 배열이라는 의미

 

연산자 [ ]를 이용해 배열의 요소들에 접근한다. 첫번째 요소는 arr[0], 마지막 요소는 arr[n-1]이다.

또한 배열의 요소는 일반 변수와 성질이 같다.

 

길이가 n인 Type형 배열의 자료형은 Type[n]으로 나타낸다. 위 배열의 자료형은 int[5]형.

 

배열을 초기화 할 땐 { }안에 요소들을 쉼표로 구분해주면 된다.

#include <iostream>
int main(){
    int a[5] = {1, 2, 3, 4, 5};		//배열 초기화
    return 0;
}

 

배열의 요소 개수를 구할 땐 sizeof(arr)/sizeof(arr[0])을 해주면 된다. 즉, 배열 전체의 메모리 크기를 배열 요소 하나의 메모리 크기로 나눠주면 배열의 요소 개수가 나온다.

#include <iostream>
int main(){
    int arr[5] = {1, 2, 3, 4, 5};
    std::cout << sizeof(arr)/sizeof(arr[0])		//20/4이므로 5

    return 0;
}

 

배열 요소의 삽입, 삭제

1) 삽입

배열에 요소를 삽입할 때는 해당위치부터 맨 마지막 요소까지를 모두 한칸씩 뒤로 밀고 요소를 삽입해야한다.

#include <iostream>
int main(){
    int arr[7] = {68, 22, 57, 11, 91, 32};
    for(int i = 6; i > 2; i--){
        arr[i] = arr[i-1];
    }
    arr[2] = 87;
}

2) 삭제

마찬가지로 요소를 삭제할 때도 뒷부분 요소들을 모두 앞으로 옮겨주어야 한다.

물론 옮기는 과정에서 삭제하고 싶은 값이 뒤의 값으로 덮어지기 때문에 직접적인 삭제를 할 필요는 없다.

#include <iostream>
int main(){
    int arr[7] = {68, 22, 87, 57, 11, 91, 32};
    for(int i = 2; i < 6; i++){
        arr[i] = arr[i+1];
    }
}

 

'자료구조' 카테고리의 다른 글

[자료구조] 3. 연결리스트  (0) 2023.02.14
[자료구조] 2. 스택(stack), 큐(queue)  (0) 2023.01.25

댓글