[JAVA 자료구조 STACK 만들기] 실습 (자바 자료구조 STACK 만들기 실습)
안녕하세요 . 자료구조 STACK 을 java 언어로 구현 해 보았습니다. 궁금하신점이나 태클 환영이에요!
자료구조 스택은 쉬운편이라 생각이 들어 스택 구조 설명은 따로 하지 않았습니다 !
메인함수는 따로 작성하지 않았으니 원하시는데로 객체 생성하여 테스트 해보시면 될것 같습니다. !
// 먼저 스택 의 메소드 구조 들 입니다.
public interface MyStack<E> {
public E pop(); // 스택 상단의 데이터를 삭제
public E peek(); // 스택 상단의 데이터를 가져오는 메소드
public boolean isEmpty(); // 비어있으면 true
public void push(E data); // 데이터 삽입.
}
// 스택의 메소드 구현 부분 입니다.
public class MyStackImpl<E> implements MyStack<E> {
private Object[] elementData;
private int index;
// 배열 크기 지정 생성자를통해
public MyStackImpl(int size) {
elementData = new Object[size];
index = 0;
}
@Override
public E pop() {
if (isEmpty())
throw new IndexOutOfBoundsException("스택이 비어있음.");
E item = peek();
elementData[--index] = null;
return item;
}
@SuppressWarnings("unchecked")
@Override
public E peek() {
if (isEmpty())
throw new IndexOutOfBoundsException("스택이 비어있음.");
return (E) elementData[index - 1]; // 데이터 top 위치를 리턴하고 삭제 하지 않는다.
}
@Override
public boolean isEmpty() {
return index <= 0;
}
@Override
public void push(E data) {
if (index >= elementData.length) {
throw new IndexOutOfBoundsException();
}
elementData[index++] = data;
}
}