본문 바로가기
카테고리 없음

ArrayList로 구현한 Memory구조(Stack,Pop)

by kangs' tong 2023. 11. 3.

ArrayList로 구현한 Memory구조(Stack,Pop)

1. Memory 구조란?

Memory 구조는 컴퓨터 시스템에서 프로그램의 실행과 데이터 저장을 위해 사용되는 공간을 관리하는 방식을 의미합니다. 이 공간은 일부가 실행 중인 프로그램에 의해 사용되며, 다른 부분은 운영체제 또는 프로그램들에 의해 할당되고 해제됩니다.

2. Stack 메모리 구조

Stack은 컴퓨터 메모리에서 사용되는 데이터 구조로, 후입선출(LIFO, Last-In-First-Out) 방식을 따릅니다. 이는 마지막에 들어온 데이터가 가장 먼저 나가는 구조를 의미합니다.

3. ArrayList를 이용한 Stack 구현하기

Java에서는 ArrayList를 이용하여 Stack을 구현할 수 있습니다. ArrayList는 가변크기의 배열로 구현되어 동적으로 크기를 조절할 수 있으며, Stack의 구조에 맞게 push(데이터 추가)와 pop(데이터 제거) 작업을 수행할 수 있습니다.

import java.util.ArrayList;

public class Stack {
    private ArrayList<Integer> stack;

    public Stack() {
        stack = new ArrayList<>();
    }

    public void push(int data) {
        stack.add(data);
    }

    public int pop() {
        if (stack.size() == 0) {
            throw new IndexOutOfBoundsException("Stack is empty");
        }
        return stack.remove(stack.size() - 1);
    }

    public boolean isEmpty() {
        return stack.isEmpty();
    }
}

4. pop 연산의 동작

pop 연산은 Stack에서 가장 위에 있는 데이터를 제거하고, 해당 데이터를 반환하는 작업입니다. 위에서 구현한 Stack 클래스의 pop() 메소드를 통해 pop 연산을 수행할 수 있습니다.

Stack stack = new Stack();
stack.push(1);
stack.push(2);

int poppedData = stack.pop(); // 2가 아래에서부터 제거되고 반환됨

마무리

ArrayList를 이용하여 Stack을 구현하는 방법에 대해 알아보았습니다. Stack은 데이터 저장 및 접근을 위한 효율적인 구조로 사용되며, ArrayList의 유연한 크기 조절 기능을 활용하여 구현할 수 있습니다. 이를 통해 프로그램의 메모리 관리를 더욱 효율적으로 수행할 수 있습니다.

댓글