티스토리 뷰
블로깅 하는 게 처음이라 많이 어색하다. 쿠쉬쿠쉬.
그리고 누군가가 본다는 게 더 어색하다. 쿠쉬쿠쉬.
- Stack과 Queue
Stack과 Queue는 데이터를 일시적으로 저장하기 위한 자료구조이다.
- Stack(스택)
특징
- LIFO
- POP, PUSH
- ONE SIDE
- TOP
stack은 '더미,쌓음' 를 뜻한다. 자료구조에서 스택은 뜻과 유사한 과정을 수행한다.
스택은 LIFO(Last In First Out)의 과정의 모습을 보여준다..
즉, 나중에 들어온것이 가장 먼저나가는 형태인 후입선출을 말한다.
스택은 바닥인 가장 아래부터 데이터가 쌓이기 시작한다. 그리고 위에 가장 늦게 들어온 데이터가 쌓이게 된다.
따라서 스택에서 TOP은 가장 나중에 들어온 데이터를 지칭하기도 한다.
스택의 TOP에서는 POP과 PUSH가 일어난다. 이는 데이터를 넣고 빼는 작업을 지칭한다.
PUSH는 데이터를 넣는 즉, 쌓는다. POP은 데이터를 가장 늦게 쌓은 데이터를 꺼내는 것을 말한다.
PUSH와 POP은 항상 TOP에서만 이루어지는 것이 바로 Stack의 특징이다.
위의 스택의 특징을 토대로 스택에서 일어나는 과정을 살펴보면 특징은 바로 one side 라는 것이다.
데이터가 들어가고 나가는 곳이 하나라는 것이다.
- 적용사례
컴퓨터 이론을 공부를 하면서 궁금증을 유발하는 부분이 바로 익힌 이론이 어떻게 활용되고 이용되는가 이다.
스택을 공부하면서 자료구조인 스택이 어떻게 활용되는지를 알아보았다.
글을 쓰거나 문서작업을 할 때 우리는 현재작업 전으로 돌아가기 위해서 ctrl + z 를 사용하곤 한다.
ctrl + z 가 스택의 pop 역할을 하는 것이다. 문서 작업을 할 때 마다 데이터가 계속해서 저장되며, 가장 나중에 적용된 데이터(쌓여진 데이터 중 가장 위에 있는 데이터 = TOP)를 ctrl + z 행위를 통해서 꺼내는 것이다.
- QUEUE(큐)
특징
- FIFO(First In First Out)
- enqueue, dequeue
- front, rear
- two side
Queue는 '줄 ,대기 행렬' 을 뜻한다. 큐 또한 자신의 뜻과 비슷한 모습을 보인다.
큐는 FIFO인 선입선출의 과정을 보여준다. 즉, 가장 먼저 들어온 것이 가장 먼저 나가는 모습을 보이는 것이다.
예를 들어보면 단순히 줄을 서는 것과 같다.
우리가 무엇인가를 구매하기위해서 줄을 서면, 줄을 선 가장 앞에 있는 사람에게 구매 할 수 있는 기회를 준다. 이것이 FIFO이다.
자료구조인 큐 또한 데이터를 넣고 빼는 작업을 실행한다.
데이터를 넣는것을 enqueue 메소드 라고 하고 데이터를 빼내는 것을 dequeue 메소드 라고 한다.
큐는 스택과 다르게 데이터를 넣는 곳과 데이터를 빼는 곳이 따로 따로 있다.
큐는 데이터를 집어넣고 빼내는 곳이 다르다.
계속해서 데이터를 집어 넣는 곳을 rear(back)이라고 하고 데이터를 빼내는 곳은 front라고 한다.
rear에서 enqueue가 일어나고 front에서 dequeue가 일어난다.
큐는 선입선출이다. 가장 먼저 들어온것이 가장 먼저 나가야한다.
계속해서 쌓이는 데이터 중에서 가장 먼저 들어온것을 먼저 빼내기 위해서 two side 방식이 활용되어야한다.
따라서 큐는 two side 방식을 활용하고 있다.
- 적용사례
자료구조인 큐가 사용되는 것을 살펴보자.
수강신청 할 때를 생각해보자 수강신청이 밀려 대기자가 몇명인지 뜨고 대기시간이 뜬다.
이는 큐를 이용한것이다. 수강신청 페이지에 먼저 들어온 학생부터 수강신청을 할 수 있도록 한다.
이를 선입선출 FIFO라고 한다.
또한 게임을 실행할때 우리는 스킬을 사용하거나 캐릭터를 움직이기위해 동작(키보드)버튼을 누른다.
동작 시키기 위해 먼저 누른 데이터가 들어가고 들어간 순서에 맞춰서 데이터가 나옴으로써 게임이 동작하는 것은 자료구조인 큐를 적용한 것이라고 할 수 있다.
'쿠쉬쿠쉬 블로깅!' 카테고리의 다른 글
Blogging - 3. node.js 끝내기(1) (0) | 2020.07.30 |
---|---|
Blogging - 2. VM(가상머신) (0) | 2020.07.24 |