반응형

[광고 누르면 오늘의 행운 상승!!]

우선순위 큐의 특성

  • 우선순위를 가진 항목들을 저장하는 큐
  • FIFO 순서가 아니라 우선순위가 높은 순서대로 먼저 나가게 된다.

우선순위 큐의 적용 분야

  • 시뮬레이션 시스템
  • 네트워크 트래픽 제어
  • 운영체제의 테스크 스케줄링

구현코드

package Queue;

import java.util.Arrays;
import java.util.Comparator;
import java.util.LinkedList;
import java.util.PriorityQueue;
import java.util.Queue;

class Car implements Comparable<Car>{
	String name;
	int price;
	public Car(String name, int price) {
		this.name = name;
		this.price = price;
	}
	public String toString() {
		return name + "," +price;
	}
	@Override
	public int compareTo(Car o) {
		return -name.compareTo(o.name);
	}
}
public class QueuePriority {

	 public static void main(String[] args) {
		  Car c = new Car("박이삭",2233);
		  
		  Car[] a = {c , new Car("강호동",3000) , new Car("유재석",2000)};
		  System.out.println(c);
		  System.out.println(c.toString());
		  System.out.println(a);
		  Arrays.sort(a,new Comparator<Car>(){
			@Override
			public int compare(Car o1, Car o2) {
				return Integer.compare(o1.price, o2.price);
			}
		  });
		  // TODO Auto-generated method stub
		  // 자바의 pq는 Minheap으로 구성 : ㄱ,ㄴ,ㄷ 순 / 1,2,3 순
		  
		  PriorityQueue<Car> p = new PriorityQueue<Car>();
		  p.offer(c);
		  p.offer(new Car("강호동",3000));
		  p.offer(new Car("유재석",2000));
		  while(!p.isEmpty()) {
			  System.out.println(p.poll());
		  }
		  
		  PriorityQueue<String> pq = new PriorityQueue<>(new Comparator<String>() {

			@Override
			public int compare(String o1, String o2) {
				// TODO Auto-generated method stub
				return -o1.compareTo(o2);
			}
		});
		  pq.offer("류완수");
		  pq.offer("김우빈");
		  System.out.println(pq);
		  
		  
		  Queue<String> q = new LinkedList<>();
		  q.offer("류완수");
		  q.offer("김우빈");
		  System.out.println(q);
		//  for(int i=0; i<q.size(); i++) {
		//   System.out.println(q.get(i));
		//  }
		//  for(String s:q) System.out.println(s);
		//  while(!q.isEmpty()) {
		//   System.out.println(q.poll());
		//  }
		//  System.out.println(q);
		 }

}

 

반응형

'4. 자료구조 > 1. 선형(Stack, Queue, List)' 카테고리의 다른 글

ArrayList  (0) 2020.03.02
Queue  (0) 2020.03.02
Stack  (0) 2020.03.02

+ Recent posts