[Java 자료구조] 큐 구현해보기

2022. 2. 7. 17:32·Java & Kotlin
목차
  1. 큐(Queue) 구현해보기

큐(Queue) 구현해보기

연결 리스트 구현한 MyLinkedList를 활용하여 큐를 구현해본다. 큐의 연산에는 데이터를 rear의 위치에 넣는 enQueue() 메서드와 front 위치의 데이터를 출력하는 deQueue() 메서드가 있다.

 

MyLinkedQueue.java
package ch05;

import ch03.MyLinkedList;
import ch03.MyListNode;

interface Queue{
	public void enQueue(String data);
	public String deQueue();
	public void printQueue();
}

public class MyLinkedQueue extends MyLinkedList implements Queue{
	
	MyListNode front;
	MyListNode rear;
	
	@Override
	public void enQueue(String data) {
		
		MyListNode newNode;
		
		if(isEmpty()) {	// 맨 처음 요소로 들어가는 경우
			newNode = addElement(data);
			front = newNode;
			rear = newNode;
		}
		
		else {
			newNode = addElement(data);
			rear = newNode;
		}
		
		System.out.println(newNode.getData() + " added");
	}

	@Override
	public String deQueue() {
		
		if(isEmpty()) {
			System.out.println("Queue is empty");
			return null;
		}
			String data = front.getData();
			front = front.next;
			
			if( front == null ) {	// 마지막 항목
				rear = null;
		}
		return data;
	}
	
	@Override
	public void printQueue() {
		printAll();
	}
}

 

MyListQueueTest.java
package ch05;

public class MyListQueueTest {

	public static void main(String[] args) {
		
		MyLinkedQueue queue = new MyLinkedQueue();
		queue.enQueue("A");
		queue.enQueue("B");
		queue.enQueue("C");
		
		queue.printAll();
		
		System.out.println(queue.deQueue());
		System.out.println(queue.deQueue());
		
	}

}

 

수행 결과

스택과 달리 입력 순서대로 출력되는 것을 볼 수 있다.

A added
B added
C added
A->B->C
A
B
저작자표시 비영리 변경금지 (새창열림)

'Java & Kotlin' 카테고리의 다른 글

[Java 자료구조] 제네릭 프로그래밍  (0) 2022.02.07
[Java 자료구조] 스택 구현해보기  (0) 2022.02.07
[Java 자료구조] 연결 리스트 구현해보기  (0) 2022.02.07
  1. 큐(Queue) 구현해보기
'Java & Kotlin' 카테고리의 다른 글
  • [Java 자료구조] 제네릭 프로그래밍에서의 자료형 제한
  • [Java 자료구조] 제네릭 프로그래밍
  • [Java 자료구조] 스택 구현해보기
  • [Java 자료구조] 연결 리스트 구현해보기
Sue
Sue
개발 공부 로그
  • Sue
    Sue's devlog
    Sue
  • 전체
    오늘
    어제
    • 분류 전체보기 (122)
      • Algorithm (2)
      • WEB (8)
      • Java & Kotlin (83)
      • Spring (26)
      • Database (1)
      • Infra (0)
      • Git (1)
      • devlog (1)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Sue
[Java 자료구조] 큐 구현해보기

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.