본문 바로가기
자료구조

[자료구조] Stack

by eddypark 2023. 11. 6.

- 먼저 들어간 데이터가 나중에 나오는 LIFO(Last In First Out) 구조

- 스택의 크기만큼 데이터가 꽉 차서 데이터를 넣지 못할 때 → Overflow

- 스택이 비어있는데, 데이터를 꺼내려고 하는 경우 → Underflow

 

생성

import java.util.Stack; //import
Stack<Integer> stack = new Stack<>(); // int형 스택 선언
Stack<String> stack = new Stack<>(); // char형 스택 선언

 

추가 및 변경

Stack<Integer> stack = new Stack<>(); // int형 스택 선언
stack.push(1); // stack에 값 1 추가
stack.push(2); // stack에 값 2 추가
stack.push(3); // stack에 값 3 추가

삭제

Stack<Integer> stack = new Stack<>(); // int형 스택 선언
stack.push(1); // stack에 값 1추가
stack.push(2); // stack에 값 2추가
stack.push(3); // stack에 값 3추가
stack.pop();   // stack에 값 제거
stack.clear(); // stack의 전체 값 제거 (초기화)

최상단 값 확인

Stack<Integer> stack = new Stack<>(); // int형 스택 선언
stack.push(1); // stack에 값 1추가
stack.push(2); // stack에 값 2추가
stack.push(3); // stack에 값 3추가
stack.peek();  // stack의 가장 상단의 값 출력

기타 메소드

Stack<Integer> stack = new Stack<>(); // int형 스택 선언
stack.push(1); // stack에 값 1추가
stack.push(2); // stack에 값 2추가
stack.size();  // stack의 크기 출력 : 2
stack.empty(); // stack이 비어있는지 check (비어있다면 true)
stack.contains(1) // stack에 1이 있는지 check(있다면 true)

 

'자료구조' 카테고리의 다른 글

[자료구조] TreeSet  (0) 2023.11.07
[자료구조] Hash Set  (0) 2023.11.07
[자료구조] Vector  (0) 2023.11.06
[자료구조] ArrayList  (0) 2023.11.03
[자료구조] 자료구조형  (0) 2023.11.03