스택(Stack)의 개념
- 큐와 다르게 나중에 들어온 데이터가 먼저 나가는 LIFO(Last In First Out)로 저장하는 자료 구조이다.
스택(Stack)의 기본 메서드 4가지
- push(item) : item 하나를 스택의 가장 윗부분에 추가한다.
- pop() : 스택에서 가장 위에 있는 항목을 제거한다.
- peek() : 스택의 가장 위에 있는 항목을 반환한다.
- isEmpty() : 스택이 비어있을 경우 true를 반환한다.
스택(Stack)의 활용 사례
- 재귀 알고리즘
- 웹 브라우저 방문 기록 (뒤로 가기)
- 실행 취소
- 역순 문자열 만들기
스택(Stack)의 구현
import java.util.NoSuchElementException;
public class Stack<T>
{
class Node<T> {
private T data;
private Node<T> next;
public Node(T data) {
this.data = data;
}
}
private Node<T> top;
private void push(T item)
{
Node<T> t = new Node<>(item);
t.next = top;
top = t;
}
private T pop()
{
if(top == null)
{
throw new NoSuchElementException();
}
T item = top.data;
top = top.next;
return item;
}
private T peek()
{
if(top == null)
{
throw new NoSuchElementException();
}
return top.data;
}
private boolean isEmpty()
{
return top == null ? true : false;
}
}
'Data Structure' 카테고리의 다른 글
[Java] 큐(Queue) (0) | 2021.06.16 |
---|