투케이2K

224. (java/자바) LinkedList 링크드리스트 사용해 queue 큐 구조 구현 실시 - add , peek , poll , remove , while 요소 출력 본문

Java

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 : 해당 큐에 저장된 데이터를 전체 삭제합니다

* */


 

반응형
Comments