JJUNNAK's

[ Java ] 자료구조 01. Stack(스택) 본문

Language/Java

[ Java ] 자료구조 01. Stack(스택)

최낙준 2023. 2. 22. 02:42
Stack 구조

Stack 구조LIFO(Lasr In First Out) 으로 설계되어 있는 자료구조이다.

즉  마지막으로 들어온 데이터가 먼저 나오는 형식이다.

 

Stack 구조의 장점 :  구현이 간단하고 쉽다,  데이터 처리가 빠르다.

 

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

 

Comments