[Study] Stack & Queue
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 일 때, 네트워크가 끊어졌다고 판단할 수 있다.
- 참고 자료