끄적끄적 코딩
article thumbnail
Published 2021. 5. 3. 22:59
배열(Array), 리스트(List) 자료구조

배열이란
같은 자료형을 가진 변수를 하나로 묶어서 사용함

int arr[10];
// 타입 변수명[크기];
int arr[3] = {1, 3, 5};

cout << arr[0] << endl;
cout << arr[1] << endl;
cout << arr[2] << endl;

// 1
// 3
// 5


연속된 메모리 공간을 사용
정적 표현
인덱스를 통해 접근 가능

정적이므로 배열의 크기를 컴파일 이전에 정해주어야 함
컴파일 이후 배열의 크기를 변동 할 수 없음

 

리스트란
순서가 있는 데이터의 집합

https://interconnection.tistory.com/104


불연속적으로 메모리 공간을 차지
동적 표현
인덱스가 없음
포인터를 통한 접근
메모리의 재사용 편리

포인터를 통해 다음 데이터를 가르키므로 추가적인 메모리 공간 발생

배열 리스트 차이점

  배열 리스트
데이터 검색 좋음 (인덱스를 통한 검색) 나쁨 (포인터를 통해 순차적으로 검색)
데이터 입력 나쁨 (인덱스를 전부 한칸씩 밀어야함) 좋음 (앞과 뒤에 있는 포인터를 해당 노드에 연결)
데이터 삭제 나쁨 (빈 메모리가 생김) 좋음 (앞과 뒤에 있는 포인터를 연결
메모리 크기 정적 동적



배열과 리스트 사용
배열 : 데이터의 크기가 정해져 있고, 추가적인 삽입 삭제보다 검색이 많은 경우 유리
리스트 : 데이터의 크기가 정해져 있지 않고, 삽입 삭제가 많이 일어나며, 검색이 적은 경우 유리

검색 태그