ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [whiteship스터디 4주차 과제]LinkedList를 이용해 Queue 구현
    CS/자료구조 2021. 6. 19. 11:50

    큐의 FIFO 특징을 간단하게 구현했습니다.

     

    • Main 클래스
    package Week4_Queue_ListNode;
    
    public class Test {
        public static void main(String[] args) {
            Queue<Integer> queue = new Queue<>();
            for (int i = 0; i < 3; i++) {
                queue.push(i);
            }
            System.out.println("Queue Size : " + queue.size);
            queue.showItems();
    
            System.out.println(queue.pop().data);
            System.out.println(queue.pop().data);
            System.out.println(queue.pop().data);
            System.out.println("Queue Size : " + queue.size);
            queue.showItems();
        }
    }
    

     

     

    • 노드 클래스
    package Week4_Queue_ListNode;
    
    public class Node<T> {
        T data;
        Node<T> next;
    
        Node(T data) {
            this.data = data;
            next = null;
        }
    }
    

     

    • Queue 클래스
    package Week4_Queue_ListNode;
    
    public class Queue<T> {
        Node<T> head;
        int size;
    
        public void push(T data) {
            if (head == null) {
                head = new Node<>(data);
                size = 1;
                return;
            }
    //      탐색에는 O(n)의 복잡도가 소요됩니다.
            Node<T> temp = head;
            for (int i = 0; i < size - 1; i++) {
                temp = temp.next;
            }
            temp.next = new Node<>(data);
            size++;
        }
    
        public Node<T> pop() {
            Node<T> temp = head;
            head = temp.next;
            temp.next = null;
            size --;
            return temp;
        }
    
        public void showItems() {
            if (head == null || size == 0) {
                System.out.println("Empty");
            }
            Node<T> temp = head;
            for (int i = 0; i < size; i++) {
                System.out.println("item" + (i + 1) + ":" + temp.data);
                temp = temp.next;
            }
        }
    
    }
    

     

Designed by Tistory.