
First-Word
스텍 메모리 영역 : 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역. 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸.
Stack
- 상자에 물건을 쌓아 올리듯이 데이터를 쌓는 구조
- 마지막에 저장한 데이터를 가장 먼저 꺼내는 자료 구조를 가지고 있는데 , LIFO(Last In First Out) 후입선출 구조라고 말한다.
- 스택의 쓰임새의 대표적인 예로 탄창을 들 수 있다. 마지막에 넣은 총알이 가장 먼저 발사 되고 가장 먼저 넣은 총알이 마지막에 발사되는 것을 떠올리면 된다.
- Stack 메모리, 수식계산, undo/redo, 웹브라우저의 뒤로/앞으로 기능 등
Stack 대신 Deque 사용 권장
Stcak 클래스는 Vetor 클래스를 상속을 받아 구현되었는데 이 Vector 클래스 자체가 굉장히 오래되어 취약점이 많고, 상속으로 인한 부모 메서드 공유 문제 때문에 사용자가 잘못되게 사용할 수 있다는 문제가 있다.
자바 공식 문서에서는 Stack 클래스보다 Deque 클래스 사용을 권장하고 있다.
사용법
| 메서드 | 설명 |
| boolean empty() | stack이 비어있는지 알려준다. |
| .peek() | Stack의 맨 위에 저장된 객체를 반환 pop과 달리 Stack에서 객체를 꺼내지 않는다. 비어있을 경우 EmptyStackException을 발생 |
| .pop() | Stack의 맨 위에 저장된 객체를 꺼낸다 비어있을 경우 EmptyStackException 발생 |
| .push(객체) | Stack에 객체를 저장한다 |
| .search(객체) | Stack에서 주어진 객체를 찾아서 그 위치를 반환 못 찾을 경우 -1을 반환 배열과 달리 위치는 0이 아닌 1부터 시작 |
'자료구조 1 Page 노트 정리' 카테고리의 다른 글
| 자료구조 1 Page 노트 정리 Heap (3) | 2024.10.20 |
|---|---|
| 자료구조 1 Page 노트 정리 연결리스트 (3) | 2024.10.18 |
| 자료구조 1 Page 노트 정리 HashMap (4) | 2024.10.17 |
| 자료구조 1 Page 노트 정리 Array (4) | 2024.10.16 |
| 자료구조 1 Page 노트 정리 Queue (1) | 2024.10.16 |