선형 자료 구조란 데이터 구조를 구성하는 요소들이 서로 인접하여 순차적인 방식으로 정렬 (이어져 있다는 뜻)되어 있음을 뜻한다. 가장 일반적인 선형 자료구조인 배열, 리스트에 대해 알아보자
이미지 출처: TCP SCHOOL
연관된 데이터들을 그룹으로 관리하기 위한 자료구조로 자료형들이 메모리 공간상에서 연속적으로 저장되어 있는 구조이다. 때문에 물리적 저장공간과 논리적 저장공간이 같고, 각각의 요소
들에 인덱스
가 붙어있다.
Random access(임의 접근): 메모리 주소만 있어도 즉시 데이터를 읽을 수 있는 호출 방식
Sequential access (순차 접근): 데이터의 위치까지 맨앞부터 차례로 탐색하는 방식
Cache hit
가능성이 커져 성능에 큰 도움이 된다CPU가 참조하고자 하는 메모리가 캐시에 존재하고 있을 경우 Cache Hit라고 한다.
배열이 가지고 있는 인덱스라는 장점을 버리고 빈틈없는 적재라는 장점을 취한 자료구조이다. 노드(node)라고 불리는 리스트의 요소들은 데이터 요소와 포인터의 쌍으로 구성된다. 각 노드들은 흩어진 상태로 저장이 되고, 각 노드에 접근시 이전 요소의 포인터를 사용하여 접근한다.
이미지 출처: TCP SCHOOL
단반향 연결 리스트
null
값을 가지게 된다.양방향 연결 리스트
cache hit
가 어렵다.Spatical locality: 최근 접근했던 주소 근처의 주소들을 접근하는 경향을 말함
이미지 출처: programiz
추가된 요소를 메모리의 가장 앞 주소에 배치하는 자료구조 요소를 스택의 최상단에서만 삭제 및 추가할 수 있다. 마지막에 넣은 요소가 제일 먼저 나오기 때문에 LIFO(Last In First Out) 후입선출이라 한다.
push
라 한다pop
이라 한다.이미지 출처: programiz
각 요소에 우선순위를 부여하는 자료 구조, 먼저 추가된 요소가 우선적으로 삭제된다는 점에서 FIFO(First in First out ) 선입선출이라 한다.
enqueue
라 한다.dequeue
라고 한다.생활코딩 배열
생활코딩 리스트
위키 스택
자료구조 시간복잡도
그외
서적 참고
코드 없는 알고리즘과 데이터 구조 - 암스트롱수베로 / 류태호 역