티스토리 뷰

스택 과 큐 의 개념과 각 자료구조를 JAVA코드로 작성해보자

 

스택(Stack)과 큐(Queue)는 자료구조로서 데이터를 저장하고 관리하는 방법을 나타냅니다. 각각의 특징과 코드를 살펴보겠습니다.

스택(Stack)

  1. 특징:
    • 후입선출(Last-In-First-Out, LIFO) 원칙을 따릅니다. 즉, 마지막에 삽입된 요소가 먼저 제거됩니다.
    • 주로 함수 호출 스택, 역추적(backtracking), 괄호 검사 등에 사용됩니다.
  2. Java 코드:
import java.util.Stack;

public class StackExample {
    public static void main(String[] args) {
        Stack<Integer> stack = new Stack<>();

        // 요소 추가 (push)
        stack.push(1);
        stack.push(2);
        stack.push(3);

        // 요소 제거 (pop)
        int top = stack.pop(); // 3이 제거되고 반환됨
        System.out.println("Popped: " + top);

        // 스택이 비어 있는지 확인 (empty)
        boolean isEmpty = stack.isEmpty();
        System.out.println("Is Stack Empty: " + isEmpty);

        // 스택의 맨 위 요소 확인 (peek)
        int peeked = stack.peek(); // 현재 맨 위 요소는 2
        System.out.println("Top Element: " + peeked);
    }
}

큐(Queue)

  1. 특징:
    • 선입선출(First-In-First-Out, FIFO) 원칙을 따릅니다. 즉, 먼저 삽입된 요소가 먼저 제거됩니다.
    • 주로 자원 스케줄링, 대기열 관리 등에 사용됩니다.
  2. Java 코드 (자바에서 큐를 구현하기 위해 java.util.Queue 인터페이스를 사용하며, LinkedList 클래스를 일반적으로 사용합니다):
import java.util.LinkedList;
import java.util.Queue;

public class QueueExample {
    public static void main(String[] args) {
        Queue<String> queue = new LinkedList<>();

        // 요소 추가 (offer)
        queue.offer("Apple");
        queue.offer("Banana");
        queue.offer("Cherry");

        // 요소 제거 (poll)
        String front = queue.poll(); // "Apple"이 제거되고 반환됨
        System.out.println("Removed: " + front);

        // 큐가 비어 있는지 확인 (isEmpty)
        boolean isEmpty = queue.isEmpty();
        System.out.println("Is Queue Empty: " + isEmpty);

        // 큐의 맨 앞 요소 확인 (peek)
        String peeked = queue.peek(); // 현재 맨 앞 요소는 "Banana"
        System.out.println("Front Element: " + peeked);
    }
}

위의 코드는 간단한 스택과 큐의 동작 방식을 보여주는 예제입니다. 실제 프로그래밍에서는 상황에 따라 스택과 큐를 사용하여 다양한 문제를 해결할 수 있습니다.

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/08   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함