-
[자료구조] 4. 스택(Stack)CS/자료구조 2022. 9. 11. 16:07반응형728x90
Stack의 특징
LIFO(Last In First Out) 구조로 나중에 들어온 데이터가 먼저 나가는 구조를 갖는다(ex) 접시쌓기).
push()와 pop()을 통해서 데이터를 넣고 꺼낸다.
Stack은 일반적으로 미리 데이터 최대 개수를 정해야한다.
따라서 저장 공간의 낭비가 발생할 수 있다.
=> Stack의 size를 가변적으로 가져가도록 구현하여 해결할 수도 있다.
이미지 출처: https://yoongrammer.tistory.com/45 Stack 선언과 메소드
- Stack<String> strStack = new Stack<>();
- push(obj)
- String.join("구분자", iterable obj)
- pop()Stack 선언과 값 추가, 크기 확인, 값 확인, 값 출력(각각 push(), size(), toString(), String.join())
import java.util.Stack; public class StackExample { public static void main(String[] args) { // 스택 선언 Stack<String> strStack = new Stack<>(); // 값 추가 strStack.push("banana"); strStack.push("apple"); // 크기 확인 System.out.println(strStack.size()); // 2 // 값 확인 System.out.println(strStack.toString()); // [banana, apple] // 값 출력 String result = String.join(", ", strStack); System.out.println(result); // banana, apple } }
pop()을 이용한 값 꺼내기
// 값 꺼내기 System.out.println(strStack.pop()); // apple // 크기 확인 System.out.println(strStack.size()); // 1
728x90'CS > 자료구조' 카테고리의 다른 글
[자료구조] 5. 해시(Hash) - HashMap (2) 2022.10.03 [자료구조] 2-2 리스트(List) - Linked List, Doubly Linked List (0) 2022.10.01 [자료구조] 3-1. 큐(Queue) (0) 2022.09.10 [자료구조] 2-1. 리스트(List) - ArrayList (0) 2022.09.10 [자료구조] 1. 배열(Array) (0) 2022.09.09