Stack and Queue

HyeBin, Park·2022년 6월 5일
0

Stack and Queue

🧸 선형 자료구조 (Linear)

  • 원소들을 순차적으로 나열시킨 형태
  • Array, List, Stack, Queue

💦 비선형 자료구조 (NonLinear)

  • 하나의 자료 뒤에 여러개의 자료가 존재할 수 있는 형태
  • Tree, Graph

🎃 Stack

public class Stack<E> extends Vector<E> {
    public Stack() {
    }

    public E push(E item) {
        addElement(item);

        return item;
    }

    public synchronized E pop() {
        E       obj;
        int     len = size();

        obj = peek();
        removeElementAt(len - 1);

        return obj;
    }

    public synchronized E peek() {
        int     len = size();

        if (len == 0)
            throw new EmptyStackException();
        return elementAt(len - 1);
    }

    public boolean empty() {
        return size() == 0;
    }

    public synchronized int search(Object o) {
        int i = lastIndexOf(o);

        if (i >= 0) {
            return size() - i;
        }
        return -1;
    }
}
  • 스택은 한 쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조로 되어 있다. (LIFO : Last In First Out)
  • 나중에 들어간 원소가 먼저 나온다.
  • pop(), push(item), peek(), isEmpty()

🥦 Queue

public interface Queue<E> extends Collection<E> {
	boolean add(E e);
    boolean offer(E e);
    E remove();
    E poll();
    E element();
    E peek();
}
  • 먼저 집어 넣은 데이터가 먼저 나오는 선형 구조로 저장하는 형식을 말한다. (FIFO : First In First Out)
  • Java Collection에서 인터페이스이고 이를 구현하는 Priority queue가 있다.
  • add(item), remove(), peek(), isEmpty()

예외

Reference

0개의 댓글