SEB_BE_43 / 23.01.16 회고

rse·2023년 1월 16일
0

코드스테이츠_BE_43

목록 보기
16/65

오늘

  • stack
  • queue

stack

stack은 후입선출로 나중에 들어온게 먼저 빠지는 구조다.
예시로 프링글스 감자칩을 생각하면 쉽게 이해할 수 있다.


먼저 들어간게 맨 밑에 깔리고 제일 뒤에 들어온게 위로 올라가는 구조.

그래서 stack은 넣고 나오는 순서가 다르다.

이렇게 넣게 되면 첫번째 stack.pop()을 실생했을 때 1이 아니라 3이 나오는걸 알 수 있다.

stack은 Stack<타입> stack = new Stack<>();
으로 생성한다.
stack은 넣을 때 push

Stack은 입력과 출력 모두 한 방향에서 이루어진다는 제한적 접근이 특징.
항상 하나씩 넣고, 뺄 수 있음.

push와 add의 차이

push는 stack에서 제공을하고, add는 list에서 제공하는 언어라고 한다.
리턴값이 다르다. push는 <E> 이고, add는 boolean이라는 점에서 다르다.

Queue

queue는 선입선출 방식이다.

편의점에 가면 먼저들어온게 앞에 오고 나중에 들어온게 뒤에 진열된 걸 볼 수 있다.

이렇듯 queue는 먼저 넣은게 먼저 빠지는 구조로 이렇게 나타낼 수 있다.

결과를 보면 들어온 순으로 빠지는 것을 알 수 있음.
queue는 넣을 때 add

입력과 출력의 방향이 고정되어 있고, 두 곳으로 접근이 가능.
스택과 마찬가지로 한번씩 넣고 뺄 수 있다.

활용

그런데 이런 stack과 queue를 어디서 사용할 수 있을까?

stack같은 경우는 대표적으로 웹사이트 뒤로가기 앞으로 가기 가 있다.

우리가 인터넷을 이용할 때 잘 못 들어가거나 하면 뒤로가기 버튼을 누르고, 뒤로 갔다가 아까 들어간 사이트에 다시 들어가고 싶으면 앞으로 가기 버튼을 누른다. 그걸 stack으로 표현할 수 있다.

profile
기록을 합시다

0개의 댓글