Stack 자료구조란 무엇인가? - Java
1. 스택이란?
- 'Stack'은 한쪽 방향에서만 자료를 넣고 빼는 형태의 자료구조이다
- LIFO(Last In First Out) - 선입후출 의 특징을 갖고 있으며, 제일 먼저 들어간 데이터는 제일 마지막에 꺼낼 수 있다는 의미를 가진다.
- 이해하기 쉬운 예시로 -> '프링글스' 과자를 상상하면 쉬울 것이다. 제일 먼저 들어간 과자는 제일 마지막에 먹을 수 있게 되는 방식인 것이다.
- Stack이 많이 사용되는 곳은 - DFS(깊이 우선 탐색)이다.
2. Java Stack 라이브러리 Mehtods
- push(object) : object를 Stack 에 삽입한다.
- pop() : stack에 있는 최상단 object를 삭제 하고 반환한다.
- peek() : stack에 있는 최상단 object를 반환한다. (삭제되지 않는다)
- empty() : stack이 비어있으면 true 반환, 비어있지 않으면 false 반환
- search(object) : object의 위치를 반환, stack의 최상단은 1(0이 아님), 결과가 없으면 -1 반환
- clear() : stack 내부의 전체 값 제거
3. Code
import java.util.Stack; // stack 라이브러리 import
public class stack_basic {
public static void Main(String[] args) {
// Stack 선언
Stack<Integer> intStack = new Stack<>(); //int 형
Stack<String> stirngStack = new Stack<>(); //String 형
// 값 추가
intStack.push(1);
intStack.push(2);
intStack.push(3);
System.out.println(intStack); //[1,2,3]
// 값 제거
intStack.pop(); // [1,2]
// 값 출력
intStack.peek(); // 2출력 (삭제되지않음)
// 다른 메서드
intStack.size(); // stack 크기 = 2
intStack.empty(); // stack이 비었는지 확인 = false
intStack.search(2); // stack 내부 값 검색 = 1(최상단 위치)
intStack.contains(1);//stack 내부에 1이 존재하는지 -> true
intStack.clear(); // stack 내부 내용 전부 삭제
}//main
}//class
반응형
'Algorithm & Data structure' 카테고리의 다른 글
[Algorithm]최대공약수 & 최소공배수 - Java (0) | 2022.12.11 |
---|
댓글