[Study] Stack & Queue

Doyun’s Journey
Doyun’s Lab
Published in
2 min readOct 27, 2020

Intro

두번째 공부할 알고리즘은 ‘스택/큐 (Stack/Queue)’이다.

  • What is ‘Stack’

데이터의 삽입과 삭제가 한쪽 방향에서만 일어나는 구조이다. 가장 나중에 삽입된 데이터가 가장 먼저 삭제되므로 후입 선출(LIFO : Last-In First-Out)이라고도 한다.

삽입은 PUSH, 삭제는 POP 이라는 용어를 사용한다.

> 실전

— StackOverFlow Error = 정해진 크기에 무언가를 계속 저장하다가 받아들일 수 있는 크기를 초과하여 흘러넘쳐버린 것 (재귀함수 사용 시)

— 뒤로 가기, Ctrl + Z = 캐시와 같은 모습으로 많이 존재

  • What is ‘Queue’

한쪽 방향으로 데이터가 삽입되고 반대 방향으로 데이터가 삭제되는 구조이다. 가장 먼저 삽입된 데이터가 가장 먼저 삭제되므로 선입 선출 (FIFO : First-In First-Out)이라고도 한다.

주로 순서를 보장하기 위한 처리가 필요할 때 많이 사용된다

> 실전

— CPU는 하나의 Task가 처리되고 다음 Task를 처리하면서 실행 순서대로 처리하게 되는 것

— 네트워크 연결 상태 확인 시

5초 이상 네트워크가 끊어졌을 경우에만 네트워크가 연결되지 않았다고 판단 > 큐의 길이 5로 설정, 1초마다 네트워크 상태 삽입, 삭제와 삽입 반복

연결이 안정할 때는 모든 값이 TRUE, 불안정할때는 큐의 값이 TRUE와 FALSE가 섞여서 존재할 것이다. 그러다가 모든 값이 FALSE 일 때, 네트워크가 끊어졌다고 판단할 수 있다.

  • 참고 자료

> 스택, 큐는 무엇인가 ?

--

--