-
[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; } } }
'CS > 자료구조' 카테고리의 다른 글
Swift에서 힙, 우선순위 큐 사용하기 (100% 순수 구현을 곁들인) (0) 2024.07.30 [whiteship스터디 4주차 과제]ListNode클래스를 이용해 Stack구현 (0) 2021.05.16 [whiteship스터디 4주차 과제]배열을 이용한 스택 구현 (0) 2021.05.15 [whiteship스터디]single linked list 구현 (0) 2021.04.11