스택, 큐

딩딩당당·2023년 3월 23일
0

스택(Stack)은 "쌓다"라는 의미를 가지고 있으며, 데이터를 차곡차곡 쌓아 올린 형태의 자료구조이며 가장 마지막에 삽입된 데이터가 가장 먼저 삭제되는 구조를 가지고 있다.

간단한 예시로는 종이컵을 예시로 들 수 있다.

또한 스택은 정해진 방향으로만 쌓을 수 있으며, top으로 정한 곳을 통해서만 접근할 수 있다. 새로 삽입되는 데이터 역시 top이 가리키는 가장 맨 위에 쌓이게 되며, 삭제 역시 top을 통한 접근으로 삭제할 수 잇다.

스택에서는 삽입 연산을 push, 삭제 연산을 pop이라고 하며, 이러한 스택의 구조를 후입 선출(Last in First Out)의 구조, 줄여서 LIFO라고 부른다.

스택의 사용 예시
1. 웹 브라우저의 방문기록 (뒤로가기)
2. 실행 취소
3. 역순 문자열 만들기
4. 후위 표기법 계산

큐(Queue)는 스택(Stack)과 다르게 먼저 들어온 것이 먼저 나가는 "선입선출"로 FIFO(Frist In First Out)의 구조를 가지고 잇따.

일반적으로 식당에 먼저 온 손님이 먼저 식사를 마친 후 나가는 것을 예시로 들 수 있다.

삭제 연산이 수행되는 곳을 프론트(front), 삽입 연산이 으루어지는 곳은 리어(reat)로, FIFO 구조를 위해서 스택과 다르게 큐의 한쪽 끝에는 삽입 작업이, 다른 한쪽 끝에서는 삭제 작업이 나뉘어서 이루어지고 있다.

큐는 리어(rear)에서 이루어지는 삽입 연산을 인큐(Enqueue)라고 부르며, 프론트(Front)에서 이루어지는 삭제 연산을 디큐(Dequeue)라고 부릅니다.

큐의 사용 예시
1. 은행 업무
2. 대기열 순서와 같은 우선순위의 작업 예약
3. 서비스 센터의 대기시간
4. 프로세스 관리

profile
자바공부해요흑흑

0개의 댓글