자료구조
데이터를 효과적으로 저장하고 관리하기 위한 구조의집합
선형 자료구조
데이터가 일렬로나열되어 있는구조로 각 데이터는 바로 앞이나 뒤의 데이터와 관계를 맺고 있음
선형 자료구조의 특징
1. 순차적인 구조 : 선형 자료구조는 데이터가 순차적으로 저장되어 있음
2. 인덱스 또는 포인터 사용 : 각 요소에 접근하기 위해서 인덱스(배열) 또는 포인터(연결 리스트) 등을 사용해야 함
선형 자료구조의 종류
1. 배열 (Array) : 동일한 자료형들의 요소들을 순차적으로 나열한 자료구조
· 인덱스를 통해 빠른 접근이 가능하며, 메모리에 연속적으로 할당
· 빠른 읽기와 쓰기 작업이 필요한 경우, 정해진 크기의 고정된 데이터 집합에 적합
2. 연결 리스트 (Linked List) : 각 노드가 데이터와 다음 노드를 가리키는 링크로 이루어진 자료구조
· 중간에 요소를 추가하거나 삭제할 때 효율적이며, 메모리는 불연속적으로 할당
· 데이터의 삽입과 삭제가 빈번한 경우, 크기가 동적으로 변하는 데이터 집합에 적합
3. 스택 (Stack) : 후입선출(LIFO) 원칙을 따르는 자료구조로, 데이터는 스택의 맨 위에 추가되고 삭제
· 함수 호출, 괄호 매칭, 뒤로 가기 기능 등에서 사용
· 순서가 중요한 작업이나 데이터 역순 처리에 적합
4. 큐 (Queue) : 선입선출(FIFO) 원칙을 따르는 자료구조로, 데이터는 큐의 뒤에 추가되고 앞에서 삭제
· 대기열, 작업 스케줄링 등에서 사용
· 데이터의 순차적 처리가 필요한 경우에 적합
※ 큐와 스택의 차이?
가장 큰 차이는 큐는 선입선출, 스택은 후입선출이라는 것이다.
큐는 가장 먼저 삽입된 요소가 가장 먼저 제거가 되고 스택은 가장 마지막에 삽입된 요소가 가장 먼저 제거된다.
예를들면 큐는 대기열에서 먼저 도착한 순서대로 서비스를 받는 상황이라면스택은 함수 호출이나 괄호의 짝을 맞추는 등의 상황에서 사용된다.