1. 스택(Stack)
스택은 컴퓨터의 자료구조의 한 가지로 한쪽 끝에서만 자료를 넣거나 뺄 수 있는
후입선출(LIFO – Last In First Out)로 되어있다.
PUSH는 자료를 밀어 넣는 것을 의미하고 자료를 꺼내는 것을 POP이라고 한다.
스택은 PUSH할 때 과거 데이터 위에 최신 데이터가 쌓이고, POP할때는 최신 데이터부터 나오게 된다. 이런 구조를 LIFO 구조라고 한다.
컴퓨터의 ctrl + z (이전상태 되돌리기)가 대표적인 예이다.

2. 큐(Queue)
1. 선형큐
큐도 컴퓨터에서 사용하는 자료구조이다. 스택과 다른 점은 먼저 넣은 자료가 먼저 나오는
선입선출(FIFO -First In First Out) 구조로구조로 저장하는 형식을 말한다.
큐는 put(enqueue)와 get(dequeue)을 이용해 구현된다.
Put은 큐에 자료를 넣는 것을, get은 큐에 자료를 꺼내는 것을 의미한다.
front(head)는 데이터를 get 할 수 있는 위치를 가리키고 rear(tali)은 데이터를 put 할 수 있는 위치를 가리킨다.
큐가 가득 차서 더 이상 put 할 수 없는 상태를 오버플로우(OverFlow)라고 하고,
큐가 비어있어 더 이상 get 할 수 없는 상태를 언더플로우(UnderFlow)라고 한다.

2. 원형큐
선형 큐의 오버플로우 문제를 해결하기 위해 나온 자료구조로서
front == rear 이면 front를 get 하고 해당 자리를 비운 뒤 해당 자리에 get 한다.
즉. Front = 0이고 rear = 7 일때 rear + 1 하면 front == rear 가된다. 오버플로우 방지를 위해
0번 자리에 있는 front를 get 하고 front = front + 1 한다. (0번 자리 비우고)
이후 rear = rear + 1 한 뒤 비어있는 0번 자리에 put 한다.(0번 자리 채운다)

1. 스택(Stack)
스택은 컴퓨터의 자료구조의 한 가지로 한쪽 끝에서만 자료를 넣거나 뺄 수 있는
후입선출(LIFO – Last In First Out)로 되어있다.
PUSH는 자료를 밀어 넣는 것을 의미하고 자료를 꺼내는 것을 POP이라고 한다.
스택은 PUSH할 때 과거 데이터 위에 최신 데이터가 쌓이고, POP할때는 최신 데이터부터 나오게 된다. 이런 구조를 LIFO 구조라고 한다.
컴퓨터의 ctrl + z (이전상태 되돌리기)가 대표적인 예이다.

2. 큐(Queue)
1. 선형큐
큐도 컴퓨터에서 사용하는 자료구조이다. 스택과 다른 점은 먼저 넣은 자료가 먼저 나오는
선입선출(FIFO -First In First Out) 구조로구조로 저장하는 형식을 말한다.
큐는 put(enqueue)와 get(dequeue)을 이용해 구현된다.
Put은 큐에 자료를 넣는 것을, get은 큐에 자료를 꺼내는 것을 의미한다.
front(head)는 데이터를 get 할 수 있는 위치를 가리키고 rear(tali)은 데이터를 put 할 수 있는 위치를 가리킨다.
큐가 가득 차서 더 이상 put 할 수 없는 상태를 오버플로우(OverFlow)라고 하고,
큐가 비어있어 더 이상 get 할 수 없는 상태를 언더플로우(UnderFlow)라고 한다.

2. 원형큐
선형 큐의 오버플로우 문제를 해결하기 위해 나온 자료구조로서
front == rear 이면 front를 get 하고 해당 자리를 비운 뒤 해당 자리에 get 한다.
즉. Front = 0이고 rear = 7 일때 rear + 1 하면 front == rear 가된다. 오버플로우 방지를 위해
0번 자리에 있는 front를 get 하고 front = front + 1 한다. (0번 자리 비우고)
이후 rear = rear + 1 한 뒤 비어있는 0번 자리에 put 한다.(0번 자리 채운다)
