Search

์Šคํƒ

์Šคํƒ(Stack)

์Šคํƒ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ๋กœ, ๊ฐ€์žฅ ๋‚˜์ค‘์— ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ๋‚˜๊ฐ€๋Š” ํ›„์ž…์„ ์ถœ(LIFO: Last In First Out) ๊ตฌ์กฐ๋ฅผ ๊ฐ€์ง„๋‹ค.

ํ•ต์‹ฌ ์š”์†Œ

์š”์†Œ
์„ค๋ช…
push()
์Šคํƒ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ์—ฐ์‚ฐ
pop()
์Šคํƒ์—์„œ ์ตœ์ƒ์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ
peek()
์Šคํƒ์˜ ์ตœ์ƒ์œ„ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ์—ฐ์‚ฐ
isEmpty()
์Šคํƒ์ด ๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ์—ฐ์‚ฐ
size()
์Šคํƒ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์—ฐ์‚ฐ

์ง์ ‘ ๊ตฌํ˜„ ์˜ˆ์‹œ ์ฝ”๋“œ

public class Stack<T> { private Object[] elements; private int size; public Stack(int capacity) { elements = new Object[capacity]; size = 0; } public void push(T item) { if (size == elements.length) { throw new IllegalStateException("Stack is full"); } elements[size++] = item; } @SuppressWarnings("unchecked") public T pop() { if (isEmpty()) { throw new IllegalStateException("Stack is empty"); } T item = (T) elements[--size]; elements[size] = null; return item; } @SuppressWarnings("unchecked") public T peek() { if (isEmpty()) { throw new IllegalStateException("Stack is empty"); } return (T) elements[size - 1]; } public boolean isEmpty() { return size == 0; } public int size() { return size; } }
Java
๋ณต์‚ฌ
โ€ข
์‹คํ–‰์ฝ”๋“œ
public class Main { public static void main(String[] args) { Stack<String> stack = new Stack<>(10); stack.push("์•„๋ฉ”๋ฆฌ์นด๋…ธ"); stack.push("์นดํŽ˜๋ผ๋–ผ"); stack.push("์นดํŽ˜๋ชจ์นด"); for (int i = 0; i < 3; i++) { String item = stack.pop(); System.out.println(item); } System.out.println(); } }
Java
๋ณต์‚ฌ

Java Collection Framework ์‚ฌ์šฉ ์˜ˆ์‹œ

import java.util.Stack; public class StackExample { public static void main(String[] args) { Stack<String> stack = new Stack<>(); // ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€ stack.push("First"); stack.push("Second"); stack.push("Third"); System.out.println("Stack size: " + stack.size()); // 3 System.out.println("Top element: " + stack.peek()); // Third // ๋ฐ์ดํ„ฐ ์ œ๊ฑฐ while (!stack.isEmpty()) { System.out.println("Popped: " + stack.pop()); } } }
Java
๋ณต์‚ฌ