투케이2K
224. (java/자바) LinkedList 링크드리스트 사용해 queue 큐 구조 구현 실시 - add , peek , poll , remove , while 요소 출력 본문
224. (java/자바) LinkedList 링크드리스트 사용해 queue 큐 구조 구현 실시 - add , peek , poll , remove , while 요소 출력
투케이2K 2021. 8. 2. 08:27[개발 환경 설정]
개발 툴 : Eclipse
개발 언어 : Java
[소스 코드]
package ex6;
import java.util.LinkedList;
public class MainActivity5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("[Program Start]");
System.out.println("");
/**
* [요약 설명]
* 1. LinkedList 는 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다
* [헤더 / 노드] -> [헤더 / 노드] -> [헤더 / 노드]
* 2. 노드는 LinkedList에 객체를 추가하거나 삭제하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않으며,
* 또한, 중간에 데이터를 추가나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없습니다
* 3. 링크드리스트는 인덱스가 없기에 특정 요소에 접근하기 위해서는 순차 탐색이 필요해 탐색 속도가 떨어집니다
* 4. 링크드리스트를 사용해서 큐 (queue) 구조 FIFO 선입선출 데이터 삽입, 삭제 기능을 사용할 수 있습니다
* 5. add : 해당 큐의 맨 뒤에 전달된 요소를 삽입합니다
* 6. element : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환합니다
* 7. offer : 해당 큐의 맨 뒤에 전달된 요소를 삽입합니다
* 8. peek : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환합니다
* 9. poll : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거합니다
* 10. remove : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거합니다
* 11. size : 해당 큐의 크기 (사이즈) 를 구합니다
* 12. clear : 해당 큐에 저장된 데이터를 전체 삭제합니다
* */
// 초기 변수 선언 실시
LinkedList<String> queue = new LinkedList<String>(); // 큐의 생성
// add() 메소드를 이용해 데이터 저장 실시
queue.add("하나");
queue.add("둘");
queue.add("셋");
System.out.println("add : " + queue.toString());
System.out.println("");
// 큐 전체 크기 (사이즈) 확인 실시
System.out.println("size : " + queue.size());
System.out.println("");
// peek 메소드를 사용해서 해당 큐에 저장된 맨 앞의 있는 요소 확인 실시
System.out.println("peek : " + queue.peek());
System.out.println("");
// poll 메소드를 사용해서 해당 큐에 저장된 맨 앞의 있는 요소를 반환하고, 해당 큐에서 제거 실시
queue.poll();
System.out.println("poll : " + queue.toString());
System.out.println("");
// while 문 사용해서 해당 큐가 빌때 까지 요소 출력 가능
/*while(!queue.isEmpty()) { // 큐에 데이터가 있을 경우 반복 수행 실시
System.out.println("poll : " + queue.poll());
}*/
// remove 메소드를 사용해서 해당 큐에 저장된 맨 앞의 요소를 삭제합니다
queue.remove();
System.out.println("remove : " + queue.toString());
System.out.println("");
// clear 사용해서 해당 큐 전체 데이터 제거 실시
queue.clear();
System.out.println("clear : " + queue.toString());
System.out.println("");
}// 메인 종료
}// 클래스 종료
[결과 출력]
[요약 설명]
/**
* [요약 설명]
* 1. LinkedList 는 연결 리스트(LinkedList)는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식의 자료구조입니다
* [헤더 / 노드] -> [헤더 / 노드] -> [헤더 / 노드]
* 2. 노드는 LinkedList에 객체를 추가하거나 삭제하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않으며,
* 또한, 중간에 데이터를 추가나 삭제하더라도 전체의 인덱스가 한 칸씩 뒤로 밀리거나 당겨지는 일이 없습니다
* 3. 링크드리스트는 인덱스가 없기에 특정 요소에 접근하기 위해서는 순차 탐색이 필요해 탐색 속도가 떨어집니다
* 4. 링크드리스트를 사용해서 큐 (queue) 구조 FIFO 선입선출 데이터 삽입, 삭제 기능을 사용할 수 있습니다
* 5. add : 해당 큐의 맨 뒤에 전달된 요소를 삽입합니다
* 6. element : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환합니다
* 7. offer : 해당 큐의 맨 뒤에 전달된 요소를 삽입합니다
* 8. peek : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환합니다
* 9. poll : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 반환하고, 해당 요소를 큐에서 제거합니다
* 10. remove : 해당 큐의 맨 앞에 있는(제일 먼저 저장된) 요소를 제거합니다
* 11. size : 해당 큐의 크기 (사이즈) 를 구합니다
* 12. clear : 해당 큐에 저장된 데이터를 전체 삭제합니다
* */