TIL 20-12-03

박한솔·2020년 12월 3일
0

오늘의 느낌

배열, 객체 이외에 새로운 자료구조인 스택과 큐를 배웠다. 도대체 이 것들이 쓰이는지 몰랐지만 이내 뒤로가기, ctrl+z와 같은 기능을 구현할 때 아주 유용하게 사용하는 것을 안 이 후에는 우리의 선조(?)들에게 감사하는 자세를 가지기로 했다. 당분간은 더 재밌는 자료구조들을 배울텐데 그때마다 즐겁게 배워나가야겠다. 틈틈히 복습도 해서 내걸로 만드는 것도 잊지 않고 말이다.

오늘 배운 내용

Stack


가장 마지막에 들어간 총알이 가장 먼저 나가는 것처럼
뷔페에서 가장 위에 있는 접시가 먼저 집어지는 것처럼

마지막에 들어온 것이 먼저 나가는 자료구조
(First In Last OUt or Last In Fist Out)

element가 push와 pop을 통해 자료의 가장 뒤의 value를 출력한다.

ex)
ctrl+z => 실행하면 현재 작업이 pop되고 그 전 실행요소가 출력된다.

뒤로가기 => 현재 page가 pop되고 이 전 page가 출력된다.

재귀함수 => call stack이 쌓이다가 맨 위의 stack부터 return이 된다.

QUEUE

처음 줄서고 먼저 온 사람이 먼저 들어가는 것처럼

먼저 입력된 자료가 먼저 나가는 자료구조
(First In First Out)

일반적인 queue는 element가 쌓이는 것은 마치 줄처럼 맨 뒤에(push)
나가는 요소는 맨 앞의 요소(shift)

priority queue의 경유는 element가 식의 규칙/입력값에 따라서 우선적으로 쌓인다. => 마지막에 추가된 요소가 끝 요소가 아닐 수 있다.

ex)
game matching queue => 일정한 규칙에 의해 먼저 매칭한 순서대로 상대방과 연결됨

online waiting number => 입력한 순서대로 번호가 주어지며 앞의 유저가 나갈수록 자신의 번호가 줄어드는 시스템

profile
치열하게, 하지만 즐겁게

0개의 댓글