less than 1 minute read

★한쪽 끝에서만 자료를 추가하고 뺄 수 있는 선형 자료구조. 늦게 들어간 자료가 먼저 나오는 후입선출 방식의 자료구조이다.

public class MyStack<T> {
	private int top = -1;
	private int capacity = 0;
	private T[] stack = null;
	
	@SuppressWarnings("unchecked")
	public MyStack(int capacity) {
		this.capacity = capacity;
		stack = (T[])new Object[capacity];
	}
	
	public void push(T v) {
		if (top == capacity - 1) {
			throw new RuntimeException("Stack Overflow");
		}
		stack[++top] = v;
	}
	
	public T pop() {
		if (top == -1) {
			throw new RuntimeException("Stack is Empty");
		}
		T result = stack[top];
		stack[top--] = null;
		return result;
	}
	
	public T peek() {
		if (top == -1) {
			throw new RuntimeException("Stack is Empty");
		}
		return stack[top];
	}
	
	public void print() {
		System.out.print("top : " + top + " : ");
		for (T t: stack) {
			System.out.print(t + " ");
		}
		System.out.println();
	}
}

Categories:

Updated: