优先级队列
 
代码实现
 
class PrioLink{
    class Entry{
        
int data;
        Entry next;
        
int prio;
        
public Entry(){
            data = -
1;
            next = 
null;
            prio = -
1;
        }
        
public Entry(
int data,
int prio){
            
this.data = data;
            
this.prio = prio;
            
this.next = 
null;
        }
    }
    
private Entry head = 
null;
    
public PrioLink(){
        
this.head = 
new Entry();
    }
    
/**
     * 按照优先级进行插入
     */
    public void insert(
int data,
int prio){
        Entry entry = 
new Entry(data,prio);
        Entry cur = 
this.head;
        
        
if(cur.next == 
null){
            cur.next = entry;
        }
else{
            
            
while(cur.next.prio>prio){
                cur = cur.next;
            }
            
            entry.next = cur.next;
            cur.next = entry;
        }
    }
      
    
/**
     * 出队
     */
    public void pop(){
        Entry cur = 
this.head;
        
if(cur.next == 
null){
            
return;
        }
        Entry del = cur.next;
        cur.next = del.next;
        del = 
null;
    }
    
public void show(){
        Entry cur = 
this.head.next;
        
while(cur!=
null){
            System.out.println(cur.data+
" ");
            cur = cur.next;
        }
        System.out.println();
    }
}
public class Test2 {
    public static void main(String[] args) {
        
        PrioLink p1 = 
new PrioLink();
        p1.insert(
10, 
1);
        p1.insert(
30, 
3);
        p1.insert(
50, 
2);
        p1.show();
        p1.pop();
        p1.show();
    }
} 
运行结果