224. (java/자바) LinkedList 링크드리스트 사용해 queue 큐 구조 구현...

224. (java/자바) LinkedList 링크드리스트 사용해 queue 큐 구조 구현...

728x90

반응형

[개발 환경 설정]

개발 툴 : 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 queue = new LinkedList(); // 큐의 생성 // 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 : 해당 큐에 저장된 데이터를 전체 삭제합니다

* */

728x90

반응형

from http://kkh0977.tistory.com/1071 by ccl(A) rewrite - 2021-08-02 09:00:57