자료 구조 스프린트에 들어간다.
처음 생각했을땐 엄청 어려울꺼라고 생각했는데
지금은 아직 할만한 것 같다 내용도 이해가되고
구조가 어떻게 생겼을 지도 머리로 조금은 그려지는듯 하다.
다른 구조를 배울때도 지금같이 이해되면 좋겠다.
여러 데이터들의 묶음을 어떻게 저장하고 사용할지 정의하는 것으로 배열도 자료구조 중 하나이다. 자료 구조의 종류는 다음과 같다.
스택은 쌓여있는 접시 더미와 같이 작동한다.
새로운 접시가 쌓일 때도 맨 위에서 먼저 쌓이고,
접시를 가져갈 때도 맨 위에서 가지고 가는 것과 같다.
(LIFO: last in, first out) = (FILO: first in, last out)
배열은 이런 자료구조를 구현할 때에 사용할 수 있는데
배열에서 사용하는 연산인 push와 pop이 바로
스택의 연산이다.

pop()
스택의 가장 윗 데이터를 삭제한다.
위치는 포인터(Linked List)/인덱스(Array)에 의해 지정된다.
push()
요소를 스택에 넣는다(삽입저장)
위치는 포인터(Linked List)/인덱스(Array)에 의해 지정된다.
peek()
스택의 가장 윗 데이터를 삭제하지 않고
데이터를 가져온다.
isEmpty()
스택이 비어있는지 확인한다.
isFull()
스택이 차있는지 확인한다.
Array를 사용할 때의 스택
top(데이터 삽입/삭제하는 위치)-(index)
maxSize(배열의 최대 크기)
stackArray(배열)
큐는 놀이공원에서 서는 줄과 같이 작동한다.
사람들이 맨 끝에 줄을 서고, 맨 앞에서부터
놀이기구에 탑승하는 것과 같다.
(FIFO: first in, first out)
마찬가지로 배열을 이용해 큐를 구현할 때 사용할 수 있다.
배열에서 사용하는 연산인 push와 shift가
큐의 연산이다.

enqueue()
큐의 가장 뒤에 데이터를 넣는다
dequeue()
큐의 가장 앞쪽의 데이터를 추출한다
peek()
큐의 가장 앞의 데이터를 삭제하지 않고,
데이터를 가져온다.
isEmpty()
큐가 비어있는지 확인한다.
Array를 사용할때의 큐
front() (배열의 가장 앞의 값)
rear() (배열의 가장 뒤의 값)
size() (배열의 길이)
arr(Queue) (배열)