ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (JAVA) Stack 과 Queue 자료구조
    JAVA 2021. 7. 19. 16:57

    자바 컬렉션에는 ArrayList, LinkedList, Stack, Queue 같은 편리한 자료구조들이 구현되어 있다.

    그 중 Stack과 Queue에 대해서 정리해 보려고 한다.

     

    1. Stack

    - FILO(First In Last Out) : 선입후출의 방식으로 가장 먼저 삽입한 원소가 가장 나중에 나오게 된다.

    - 입구와 출구가 같고 1개 뿐인 선형구조

    - 구조 상 배열과 비슷해서 배열을 기반으로 만들어짐

    - 실행 취소, 뒤로가기, 최근 방문한 페이지 등등의 기능을 구현할 시 많이 사용되는 자료구조이다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package day16;
     
    import java.util.Stack;
     
    public class Test5 {
        public static void main(String[] args) {
            Stack <Integer> s = new Stack();
            s.push(10);
            s.push(20);
            s.push(30);
            
            s.pop();
            s.peek(); // pop과 동일한 출력을 보이지만 삭제를 동반하지는 않는다.
            System.out.println(s);
        }
    }
     
    cs

    - 위는 간단한 사용예시로 출력 결과는 [10,20]이 된다.

     

    2. Queue

    - FIFO(First In First Out) : 선입선출의 방식으로 가장 먼저 넣은 원소가 가장 먼저 나오게 된다.

    - 입구와 출구가 각각 정해져 있는 선형구조

    - 대기열, 수강신청, 티켓팅 등등의 기능을 구현할 시 많이 사용되는 자료구조이다.

    - 양방향으로 삽입이 간단한 링크드 리스트 기반으로 만들어졌다.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    package day16;
     
    import java.util.LinkedList;
    import java.util.Queue;
     
    public class Test5 {
        public static void main(String[] args) {
     
            Queue q = new LinkedList(); // 사용법 주의!
            q.offer(10);// push와 같음
            q.offer(20); 
            q.offer(30);
            
            System.out.println(q.poll()); // pop과 같음
            System.out.println(q);    
        }
    }
     
    cs

    - Queue의 간단한 사용 예시로 [20,30]이 출력된다.

    - offer와 poll은 메소드명이 익숙하지 않다. 하나로 통일하면 더 좋았을 것 같다..

Designed by Tistory.