반응형
[광고 누르면 오늘의 행운 상승!!]
우선순위 큐의 특성
- 우선순위를 가진 항목들을 저장하는 큐
- 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 |