Stack은 ADT(추상 자료형)의 일종이다.
ADT(Abstract Data Type)는 데이터의 구체적인 구현 방식은 생략하고, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것이다.
Stack의 특징.
LIFO(Last in First Out). 나중에 넣은 데이터가 먼저 나온다.
데이터를 집어넣을 수 있는 선형(linear) 자료형이다
데이터를 넣는 push, 데이터를 추출하는 pop, 가장 나중에 넣은 데이터를 확인하는 peek 등의 메서드를 사용할 수 있다.
(나중에 들어간 3이 먼저 나온 모습이다)
Push() : 스택에 데이터를 넣는다.
Pop() : 스택의 최상위 값을 가져온다.
isEmpty() : 스택이 비었는 지 확인한다.
isFull() : 스택이 꽉 차있는 지 확인한다.
peek() : 스택에서 top이 가리키는 데이터를 확인한다.
top : 가장 나중에 들어간 값, 맨 위에 위치한 값
maxsize : 스택의 최대 할당 크기
storage : 스택이 가지고 있는 자료들의 모음
stack overflow : 스택의 배열 최대크기보다 더 많은 데이터를 넣었을 때 발생하는 오류.
stack underflow : 스택의 배열에 아무것도 없을 때 pop()으로 데이터를 삭제하려 할때 발생하는 오류.
Queue는 ADT(추상 자료형)의 일종이다.
ADT란 데이터의 구체적인 구현 방식은 생략한 채, 데이터의 추상적 형태와 그 데이터를 다루는 방법만을 정해놓은 것이다.
Queue의 특징을 나열하면 다음과 같다.
enqueue() or insert() : 배열의 맨 뒷부분에 데이터를 넣는다.
dequeue() or remove() : 배열 맨 앞에 위치한 데이터를 지운다.
peek() : 배열 맨 앞의 데이터를 읽는다.
front : 가장 앞에 위치한 데이터를 가리킨다.
rear : 가장 뒤에 위치한 데이터를 가리킨다.
queue overflow : 큐의 배열 최대크기보다 더 많은 데이터를 넣었을 때 발생하는 오류.
queue underflow : 큐의 배열에 아무것도 없을 때 데이터를 꺼내려 할때 발생하는 오류.