ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java]스택(Stack)
    Algorithm/자료구조 for Algorithm 2020. 9. 25. 21:22

    *스택(Stack)

    ->스택이란 후입선출(LIFO : Last In First Out)의 특성을 가진 자료구조이다.

    ->쉽게 말해 나중에 들어간 것이 먼저 나온다. 마트의 진열대에 물건을 놓거나, 상자에 물건을 넣은 뒤 꺼내는 것을 예시로 생각해보면 이해하기 쉽다.

    스택 자료구조

    *Java의 스택

    ->자바의 Stack관련 API를 살펴보면 스택 입력 연산은 push(), 출력 연산은 pop()메서드를 이용하며, top에 있는 원소(제일 마지막에 넣은 것)를 확인하는 연산은 peek()메서드를 이용한다. 언급한 연산 이외에 스택이 비어있는지 확인하는 empty() 메서드, 스택안에 어떤 아이템이 있는지 확인하는 search()메서드가 있다.

    출처 : https://docs.oracle.com/javase/7/docs/api/java/util/Stack.html

    ->스택은 java.util.Vector<E> 클래스를 상속하기 때문에 여러 다양한 메서드를 호출하거나 재정의하여 편리하게 사용할 수 있다.

    ->자바의 스택 역시 객체를 생성하고 위의 연산을 적절히 활용하면 된다. 

    import java.util.Stack;
    
    public class Stack {
    	public static void main(String[] args) {
    		Stack<Integer> st = new Stack<Integer>();
    		
            // 스택에 1, 2, 3, 4를 차례로 넣는다.
    		st.push(1);
    		st.push(2);
    		st.push(3);
    		st.push(4);
            // 제일 마지막에 넣은 4를 뺀다.
    		st.pop();
            // 제일 위의 원소 확인 : 결과는 3.
    		System.out.println(st.peek());
    		System.out.println(st.search(3));
            // toString()이 정의되어 있어, 스택을 쉽게 확인할 수 있다.
    		System.out.println(st);
    		st.clear();
    		System.out.println(st);
    	}
    }
    

     

    'Algorithm > 자료구조 for Algorithm' 카테고리의 다른 글

    [Java]우선순위큐(PriorityQueue)  (0) 2022.03.22
    [Java]서로소 집합(Disjoint Set)(Union-Find)(Merge-Find Set)  (0) 2021.04.15
    [Java]덱(Deque)  (0) 2021.02.18
    [Java]해시맵(HashMap)  (0) 2021.02.13
    [Java]큐(Queue)  (0) 2020.09.25

    댓글

Designed by Tistory.