728x90
스택
- 제한적으로 접근할 수 있는 나열구조로 접근방법은 언제나 목록의 끝에서만 일어난다.
- 한 쪽 끝에서만 자료를 넣어나 뺄 수 있는 선형구조(LIFO)로 되어있다.
- LIFO(Last In First Out, 후입선출) : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책
- LIFO(Last In First Out, 후입선출) : 마지막에 넣은 데이터를 가장 먼저 추출하는 데이터 관리 정책
활용
- 컴퓨터 내부 프로세스 구조의 함수 동작 방식
- 재귀 알고리즘
- DFS 알고리즘
- 방문기록
- 실행취소
기능
- push() : 스택에 데이터 입력
- pop() : 스택의 마지막 데이터를 반환
장점
- 구조 단순, 구현이 쉽다
- 데이터의 저장/읽기 속도가 빠르다.
단점
- 데이터 최대 갯수를 미리 정해야한다.
- 저장 공간의 낭비가 발생할 수 있음.
선언
import java.util.Stack;
Stack<Integer> stack = new Stack<>();
메소드
- push(E value)
- 해당 값을 stack의 top에 삽입
- pop()
- stack의 top에 있는 value를 삭제하고 반환
- peek()
- stack의 top이 있는 value를 삭제하지 않고 반환
- empty()
- stack이 비어있으면 true 그렇지 않으면 false를 반환
참조
https://ko.wikipedia.org/wiki/%EC%8A%A4%ED%83%9D
https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html
반응형
'CS > 자료구조' 카테고리의 다른 글
[자료구조] 링크드리스트(Linkde List) (0) | 2022.10.20 |
---|---|
[자료구조] 큐(Queue) (0) | 2022.10.19 |
[자료구조] 3차원 배열 (Array)의 출력 (0) | 2022.10.15 |
[자료구조] 배열 (Array), ArrayList, LinkedList (1) | 2022.10.15 |