Yeonn's 기록하며 성장하는 개발일지 :)

스택 & 큐 본문

알고리즘

스택 & 큐

연재몬 2022. 3. 13. 00:23

스택 (STACK)이란?

스택은 같은구조와 크기의 자료를 정해진 방향대로만 쌓을 수 있으며,

top, 가장 위에 차곡차곡 쌓인다.

 

순서를 기억하기위해서

⇒ 삭제되는것도 가장 마지막에 삽입된 자료 순으로 없어진다[후입선출]

 

삽입 push(data)

삭제 pop ()

맨 위의 데이터조회 peek()

비어있는지 아닌지 여부 isEmpty()

 

**삽입&삭제가 많기때문에

배열보다는 링크드리스트가 더 유리함.

 

비어있는 상태의 스택에서 원소를 추출: stack underflow

스택이 넘치는 상태: stack overflow

 

 

📌 스택의 활용 예시

스택의 특징인  후입선출(LIFO)을 활용하여 여러 분야에서 활용 가능하다.

  • 웹 브라우저 방문기록 (뒤로 가기) : 가장 나중에 열린 페이지부터 다시 보여준다.
  • 역순 문자열 만들기 : 가장 나중에 입력된 문자부터 출력한다.
  • 실행 취소 (undo) : 가장 나중에 실행된 것부터 실행을 취소한다.
  • 후위 표기법 계산
  • 수식의 괄호 검사 (연산자 우선순위 표현을 위한 괄호 검사)

큐(QUEUE)란?

  • 큐는 스택과다르게 먼저 들어온것이 먼저 나가는 “선입선출"로 FIFO의 구조를 가지고있다.

삭제연산이 수행되는 곳 : 프론트 , 디큐

삽입연산이 이루어지는 곳: 리어 , 인큐

 

📌 큐의 활용 예시

  • 은행업무
  • 대기열 순서와 같은 우선순위의 작업예약 등
  • 서비스 센터의 대기시간
  • 프로세스 관리

'알고리즘' 카테고리의 다른 글

어레이와 링크드리스트  (0) 2022.03.12
퀵정렬  (0) 2022.02.11
정렬 알고리즘 _선택정렬, 버블정렬  (0) 2022.02.11