본문 바로가기
* Computer Science/Data Structures

[Data Structures 자료구조] 스택(Stack)과 큐(Queue) 그림으로 이해하기

by codinguser 2021. 5. 21.

Stack ,Queue를 왜 사용할까?


책을 쌓을 때 방바닥에서부터 쌓을 수도 있지만, 옆으로 책을 넣을 수도 있듯이, 컴퓨터 체계에서도 이와 같은 책과 같은 데이터들을 쌓는 방식이 존재한다. 즉 데이터를 보관 하는 방법이 필요한 셈이다.

 

 

 

 

 

- Stack 이란 무엇인가?


영어 사전 그대로 Stack 어떠한 더미를 의미한다. 게임 중 롤을 하다 보면 나서스 스택을 쌓는다 라는 표현을 들어봤을 법하다.

 

 

ㅣ  3  ㅣ

ㅣ  2  ㅣ

ㅣ  1  ㅣ

ㅡㅡㅡㅡ

가장 먼저 들어온 1번이 가장 마지막에 나간다. 2번 3번이 나가야 꺼낼 수 있으니까.

 

 

 

 

 

- Queue란 무엇인가?


영어 사전 그대로 "줄"을 의미한다. 우리가 음식점 맛집에서 음식을 먹을려면 줄을 기다리는것과 같다. 즉 먼저 선 사람이 먼저 음식점에 들어가 음식을 먹을 수 있다. 혹은 롤에서 "야 이거 왜이렇게 큐 안잡혀" 를 말할 때 그 큐가 이러한 Queue를 지칭한다.

 

 

<----- 줄 서 있는 방향

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ

1     2      3     4     5

ㅡㅡㅡㅡㅡㅡㅡㅡㅡ

들어 온 순서도 1번 나가는 순서도 1번

 

 

 

 

 

- 스택과 큐에서 가장 중요한 4가지


1. 데이터 삽입 push()

2. 데이터 꺼내기 pop()

3. 가득 차있니? isFull?

4. 비어있니? isEmpty?

 

 

 

 

 

 

무작정 외울려고 하기보다 상식적으로 생각해보면 쉽다. 데이터를 넣는것도 필요하고 빼내는것도 필요하지 않는가? 그 이후에는 그 저장공간이 가득차있는지, 혹은 다 비어있는지도 궁금하지 않을까? 위의 4가지를 기본으로 가져가면 나머지는 프로그램이 언어별로 채워나가면 된다.

 

 

댓글