Stack의 특징
-Last In First Out
-One by One
-One Way
배열 또는 연결리스트로 구현 가능
Stack(스택)의 메소드
- peek() : 스택의 가장 위에 있는 데이터 반환
- push() : 스택의 가장 위에 있는 데이터(peek()) 위에 메모리 생성 및 데이터 추가
- pop() : 스택의 가장 위에 있는 데이터 삭제 및 반환
- isEmpty() : 스택이 비어있으면 true, 비어있지 않으면 false 반환
- clear() : 모든 데이터를 삭제하고 스택 초기화
- toString() : 모든 데이터를 출력
- contains(1) : stack 에 값 1 들어있으면 true, 없으면 false
1. 자료 구조의 정책: LIFO(Last In First Out) 혹은 FILO(First In Last Out) -후입선출
Stack에 데이터를 넣는 것을 .push(), 데이터를 꺼내는 것을 .pop().
import java.util.Stack;
1, 2, 3, 4를 스택에 차례대로 넣습니다.
Stack<Integer> stack = new Stack<>(); //Integer형 스택 선언
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
---------------------------
들어간 순서대로, 1번이 제일 먼저 들어가고 4번이 마지막으로 들어가게 됩니다.
---------------------------
예2) 스택이 빌 때까지 데이터를 전부 빼냅니다.
stack.pop();
stack.pop();
stack.pop();
stack.pop();
---------------------------
4, 3, 2, 1
제일 마지막에 있는 데이터부터 차례대로 나오게 됩니다.
---------------------------
2. 데이터는 하나씩만 넣고 뺄 수 있음
Stack 자료 구조는 데이터가 아무리 많이 있어도 하나씩 데이터를 넣고, 뺌. (한꺼번에 여러 개를 넣거나 뺄 수 없음)
3. 하나의 입출력 방향 (프링글스 통)
Stack 자료 구조는 데이터의 입출력 방향이 같음.
입력과 출력이 하나의 방향으로 이루어지는 제한적 접근.
실사용 예제
브라우저의 뒤로 가기, 앞으로 가기 기능
'TIL' 카테고리의 다른 글
자료구조 Tree traversal (0) | 2023.05.17 |
---|---|
자료구조 Graph (0) | 2023.05.05 |
자료구조 Tree (0) | 2023.05.05 |
자료구조 Queue (0) | 2023.05.05 |
부트캠프 main project "My-Buddy" -Composite Service Layer (2) | 2023.05.02 |