스택과 큐

유민우·2024년 6월 5일
0

오늘은 계산기 기능구현 순서도를 만들어볼려했지만.. 안타깝게도 하지 못했다.
강의 내용을 익히기에도 벅찼기에 ㅠ
하지만 다 핑계일 뿐이다....
그렇기에 오늘은 알고리즘 강의에서 다뤄주신 스택과 큐에 대해서 이야기해 볼까 한다

일단 스택

Stack이란 하나씩 쌓이는 데이터라고 보면 된다.
차곡차곡 쌓이고 가장 마지막에 들어온 데이터를 가장 처음에 뺄수 있다.
음.. 예전에 일했던 직장에서 제품을 관리할때 선입선출이라는 개념을 썼었는데 선입선출은 먼저 입고 된 제품을 먼저 내보낸다 라는 개념이다.. 유통기한이 지나기 전에 빠르게 내보낸다는 것이다.
스택(Stack)은 그의 반대다.
선입 후출이다. 말 그대로 가장 나중에 들어온 물건이 나갈때에도 가장 빠르게 나간다고 생각하면 된다.
마치 강릉에서 서울로 가는 버스를 타고 서울로 도착했을때 가장 앞자리가 먼저 빨리 나갈 수 있듯이... 설명이 좀 이상해지긴 했는데 대충 그런 느낌이라는 생각이 든다.
Stack은 []배열(Array)를 이용하여 구현할 수 있다.

예시코드

다음은 큐(Queue) 이다

큐는 스택(Stack) 과 반대개념이랄까 그렇게 생각하니 좀 편하게 와닿는것 같다.
스택(Stack)이 '선입후출'이었다면, 큐(Queue)는 '선입서출'의 성질을 지녔다.
먼저 들어온 친구가 먼저 나가는것이다.
전 세계가 좋아하는 방탄소년단 콘서트로 예를 들어보자
누가 가장먼저 콘서트장에 입장할 수 있을까?
바로바로 먼저 온 사람이다.
이렇듯 큐(Queue)는 '선입선출'의 성질을 지니고 있다.
큐(Queue)도 스택(Stack)처럼 []배열(Array)를 이용해서 구현할 수 있다.

예시코드

큐(Queue) 와 스택(Stack)은 비슷하지만 성질이 다르고
성질이 다름으로 인하여 pop(빼낼 때)가 코드 구현이 조금 다르다.
위 예시에서 볼 수 있는데,
큐(Queue)는 < 저장소.removeFirst > 로 구현한다.
스택(Stack)은 < 저장소.poplast > 로 구현한다.

profile
유민우

0개의 댓글