Stack구조란 제일 나중에 들어온 자료가 제일 먼저 나가는 후입선출(last in, first out, LIFO)구조이다. 일상생활에서 간단한 예를 들면 프링글스 과자에서는 나중에 쌓인(후입) 과자를 가장 먼저 먹게(선출) 된다.
push(): 스택에 자료를 넣는다(top에 쌓는것 )
pop(): 스택의 자료를 추출한다(후입선출, top부터 꺼낸다)
peek(): 마지막에 위치한 자료를 확인한다.
isEmpty(): 스택이 비어있는지 판단한다 (비어있으면 true)
isfull() : 스택이 가득 차있는지 판단한다(가득차면 true)
Stack에 자료를 넣을 시
1) push()를 이용하에 스택에 자료를 넣는다
2) 공간이 차있다면 push()를 하였을 때 오류(오버플로우)가 뜨게 된다 -> isFull()을 이용하여 true를 반환하는지 확인한다.
Stack에 자료를 추출할 시
1) pull()을 이용하여 자료를 추출한다.
2) 공간이 비어있다면 pop()을 하였을 시 오류(언더플로우)가 뜨게 된다 -> isEmpty()를 하였을 때 true를 반환한는지 확인한다.
Queue구조란 Stack구조와 반대로 먼저들어온 자료가 제일 먼저 나가는 선입선출(first in, first out, FIFO)구조이다. 선착순 물품을 받기위해 줄을 선다던지의 일상적인 예를 들 수 있다.
enqueue(): 큐에 자료를 넣는다
dequeue(): 큐의 데이터를 추출한다
peek(): 마지막에 위치한 자료를 확인한다.
isEmpty(): 큐가 비어있는지 판단한다 (비어있으면 true)
isFull(): 큐가 가득 차있는지 판단한다(가득차면 true)
Queue에 자료를 넣을 시
1) enqeue()를 이용하에 Queue에 자료를 넣는다
2) 공간이 차 있다면 enqueue()를 하였을 때 오버(언더플로우)가 뜨게 된다 -> isFull()를 이용하여 true를 반환하는지 확인한다.
Queue에 자료를 추출할 시
1) dequeue()을 이용하여 자료를 추출한다.
2) 공간이 비어있다면 dequeue()을 하였을 시 오류(언더플로우)가 뜨게 된다 -> isEmpty()를 하였을 때 true를 반환한는지 확인한다.