[자료구조] 큐(Queue), 스택(Stack) 구조와 Java에서 사용방법

    큐(Queue) 구조

    큐 구조는 줄을 서는 행위와 유사하며 가장 먼저 넣은 데이터를 가장 먼저 꺼낼수 있는 구조이다.

    FIFO(First-In, First-Out) 또는 LILO(Last-in, Last-Out) 방식으로 스택과 꺼내는 순서가 반대이다.

     

     

    Java 에서 큐 자료구조 사용방법

    Java에서는 기본적으로 java.util 패키지에 있는 Queue 클래스를 제공하고 Enqueue(큐에 데이터를 넣는 기능)은 Queue 클래스에서 add(value) 또는 offer(value) 메서드로 하고, Dequeue(큐에서 데이터를 꺼내는 기능)는 poll() 또는 remove() 메서드로 한다.

    Java에서 Queue 클래스는 인터페이스 이므로 객체 생성할때는 LinkedList 클래스를 사용해야 한다.

    예제)

    Queue<Integer> queue = new LinkedList<>();
    
    queue.add(1); // 1 넣음
    queue.offer(2); // 2넣음, 데이터가 잘 넣어지면 true 반환됨
    
    queue.poll(); // 2 꺼내짐
    

    add() 메서드와 달리 offer() 메서드는 데이터가 잘 넣어지면 true가 반환된다.

     

    스택(Stack) 구조

    스택 구조는 한쪽 끝에서만 데이터를 넣거나 뺄수 있어서 큐와 반대로 처음 들어간 데이터가 가장 늦게 나온다. 그래서 LIFO(Last In, First Out) 또는 FILO(First In, Last Out) 데이터 관리 방식을 따른다.

    Java 에서 스택 자료구조 사용방법

    Queue와 마찬가지로 java.util 패키지에서 Stack 클래스를 제공하고 데이터를 넣을 때는 push(value) 메서드를 사용하고 뺄때는 pop(value) 메서드를 사용한다.

    예제)

    Stack<Integer> stack = new Stack<>();
    
    stack.push(1); // 1 넣음
    stack.push(2); // 2 넣음
    stack.push(3); // 3 넣음
    
    stack.pop(); // 3 추출
    

    push() 메서드로 1,2,3 을 스택에 집어넣었고 pop() 을 하면 가장 마지막에들어간 3이 추출 된다.

     

     

     

    참고: 패스트 캠퍼스 강의 : 한 번에 끝내는 코딩테스트 369 Java편 

    댓글

    Designed by JB FACTORY