JJUNNAK's
[ Java ] 자료구조 01. Stack(스택) 본문
Stack 구조
Stack 구조는 LIFO(Lasr In First Out) 으로 설계되어 있는 자료구조이다.
즉 마지막으로 들어온 데이터가 먼저 나오는 형식이다.
Stack 구조의 장점 : 구현이 간단하고 쉽다, 데이터 처리가 빠르다.

Stack 구조 구현하기.
java.util 패키지의 Stack 클래스 사용.
import java.util.Stack;
// 선언
Stack<타입> 변수명 = new Stack<타입>();
// 예시
Stack<Integer> stack_int = new Stack<>();
Stack<String> stack_string = new Stack<>();
기능 (Method)
// 데이터 입력
stack.push(데이터); // 시간복잡도 O(1)
// 최상단 데이터 출력
stack.peek(); // 데이터가 없을 경우 EmptyStackException, 시간복잡도 O(1)
stack.lastElement(); // 데이터가 없을 경우 NoSuchElementException
// 처음 입력된 값 출력
stack.firstElement();
// index에 존재하는 값 출력
stack.get(int index);
// 스택 크기 출력
stack.size();
// 최상단 데이터 삭제
stack.pop(); // 시간복잡도 O(1)
// 전체 데이터 삭제
stack.clear();
// 데이터 검색
stack.search(데이터); // 시간복잡도 O(n)
// 데이터 포함여부 검색 return -> true / false
stack.contains(데이터);
// 스택이 비어있는지 확인 return -> true / false
stack.empty();
활용 예제
https://jjunnak.tistory.com/59
[ 코딩 테스트 예제 ] 03. 햄버거 만들기 - Java
문제 햄버거 가게에서 일을 하는 상수는 햄버거를 포장하는 일을 합니다. 함께 일을 하는 다른 직원들이 햄버거에 들어갈 재료를 조리해 주면 조리된 순서대로 상수의 앞에 아래서부터 위로 쌓
jjunnak.tistory.com
'Language > Java' 카테고리의 다른 글
[ Java ] 클래스 상속(extends) 과 super, this 사용법. (0) | 2023.02.23 |
---|---|
[ Java ] 모든 종류 별 연산자 모음 (0) | 2023.02.21 |
[ Java ] 조건 연산자 ?: (0) | 2023.02.21 |