[java] 클래스와 객체를 이용한 자료구조 구현 예시를 알려주세요.

자바에서 클래스와 객체를 이용하여 자료구조를 구현할 수 있습니다. 여기에는 배열, 연결 리스트, 스택, 큐 등 다양한 자료구조가 포함됩니다. 이 중에서 배열을 이용한 예시를 보여드리겠습니다.

배열을 이용한 스택 구현

public class Stack {
    private int maxSize; // 스택의 최대 크기
    private int top; // 스택의 최상위 요소의 인덱스
    private int[] stackArray; // 스택을 저장하는 배열

    public Stack(int size) {
        maxSize = size;
        top = -1;
        stackArray = new int[maxSize];
    }

    public void push(int value) {
        if (top == maxSize - 1) {
            System.out.println("스택이 가득 차서 삽입할 수 없습니다.");
            return;
        }
        top++;
        stackArray[top] = value;
    }

    public int pop() {
        if (top == -1) {
            System.out.println("스택이 비어있습니다.");
            return -1;
        }
        int value = stackArray[top];
        top--;
        return value;
    }

    public boolean isEmpty() {
        return (top == -1);
    }

    public boolean isFull() {
        return (top == maxSize - 1);
    }

    public int peek() {
        if (top == -1) {
            System.out.println("스택이 비어있습니다.");
            return -1;
        }
        return stackArray[top];
    }
}

위의 코드는 배열을 이용하여 스택을 구현하는 예시입니다. Stack 클래스 내에는 push, pop, isEmpty, isFull, peek와 같은 메서드가 있습니다. push 메서드는 스택에 요소를 삽입하고, pop 메서드는 가장 위에 있는 요소를 제거합니다. isEmpty와 isFull 메서드는 스택이 비어있는지, 가득 차있는지를 확인합니다. 마지막으로 peek 메서드는 가장 위에 있는 요소를 반환하지만 제거하지는 않습니다.

이 예시에서는 정수형 배열을 기반으로 스택을 구현했지만, 다른 자료형을 사용하거나 제네릭을 이용하여 보다 유연한 스택을 구현할 수도 있습니다.

참고 자료