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의 유연한 크기 조절 기능을 활용하여 구현할 수 있습니다. 이를 통해 프로그램의 메모리 관리를 더욱 효율적으로 수행할 수 있습니다.
댓글