: 여러 데이터의 묶음을 저장하고, 사용하는 방법을 정의한 것
프로그램은 데이터를
표현
하고, 표현된 데이터를처리
하는 것.
데이터의 표현은 데이터를저장
을 포함한 개념
이때저장
을 책임지는 것이 바로 자료구조이다.
후입선출이라는 특징을 가지고 있기 때문에 배열의 인덱스를 이동시킬 필요가 없음
💡데이터가 배열로 이루어져 있다면 스택의 자료구조를 택하는 것이 유리하다.
메서드 | 반환 타입 | 설명 |
---|---|---|
empty() | boolean | Stack이 비어있는지 알려준다. |
peek() | Object | Stack의 맨 위에 저장되어 있는 객체를 반환.(확인만 가능 꺼내지는 못함) |
pop() | Object | Stack의 맨 위에 저장되어 있는 객체를 꺼낸다. |
push(Object item) | Object | Stack에 객체(item)을 저장한다. |
size() | Integer | Stack에 추가된 데이터의 크기를 반환. |
show() | String | Stack에 포함되어 있는 모든 데이터를 String타입으로 변환하여 반환 |
clear() | 현재 Stack에 포함되어 있는 모든 데이터를 삭제 |
선입선출이기때문에 배열에서 사용할 경우, 인덱스를 변경하기 위해 처리 속도가 상대적으로 느려짐
💡 인덱스가 존재하지 않는 LinkedList에서는 큐의 자료구조를 택하는 것이 유리하다.
메서드 | 반환 타입 | 설명 |
---|---|---|
add() | Object | 큐에 데이터를 저장한다. |
poll() | Object | 가장 먼저 저장된 데이터를 큐에서 삭제하고 삭제한 데이터를 반환 |
peek() | Object | 큐에 가장 먼저 저장된 데이터를 반환 |
size() | Integer | 큐에 추가된 데이터의 크기를 반환. |
show() | String | 큐에 포함되어 있는 모든 데이터를 String타입으로 변환하여 반환 |
clear() | 현재 Stack에 포함되어 있는 모든 데이터를 삭제 |
front
가 계속 뒤로 밀려나면서 front
앞에 공간이 남게 된다. 따라서 하나의 데이터가 삭제되면 그 뒤에 따라오는 데이터들의 인덱스를 앞으로 당겨와야 하니 데이터 처리 속도가 상대적으로 느려진다. 큐의 공백과 포화인 상태를 구분하기 위해 하나의 공간을 항상 비워둔다.