1 <!DOCTYPE html>
2 <html>
3 <head>
4 <meta charset="UTF-8">
5 <title></title>
6 </head>
7 <body>
8
9 <script>
10
11 //优先队列的实现
12
13 function Person(name,code){
14 this.name = name;
15 this.code = code;
16 }
17
18 function Queue(){
19 this.arr = [];
20 this.enqueue = enqueue;
21 this.dequeue = dequeue;
22 this.front = front;
23 this.back = back;
24 this.toString = toString;
25 this.empty = empty;
26 }
27 function enqueue(ele){
28 this.arr.push(ele);
29 }
30 function dequeue(){
31 var code = this.arr[0].code,value,index;
32 for(var i=0;i<this.arr.length;i++){
33 if(code >this.arr[i].code){
34 index = i; //数字越小优先级越高
35 code = this.arr[i].code;
36 }
37 }
38 value = this.arr[index];
39 this.arr.splice(index,1);
40 return value;
41 }
42
43 function front(){
44 return this.arr[0];
45 }
46 function back(){
47 return this.arr[this.arr.length-1];
48 }
49 function toString(){
50 var retstr = '';
51 for(var i=0;i<this.arr.length;i++){
52 retstr += this.arr[i].name +" "+this.arr[i].code+",";
53 }
54 return retstr;
55 }
56
57 function empty(){
58 return this.arr.length == 0
59 }
60
61
62 //调用
63 var p = new Person("zhangsan","3")
64 var q = new Queue();
65 q.enqueue(p);
66 p = new Person("lisi","2");
67 q.enqueue(p);
68 p = new Person("zhaowu","1");
69 q.enqueue(p);
70 p = new Person("lisi","4");
71 q.enqueue(p);
72
73 console.log(q.toString());
74 q.dequeue();
75 console.log(q.toString());
76
77 q.dequeue();
78 console.log(q.toString());
79 q.dequeue();
80 console.log(q.toString());
81 </script>
82 </body>
83 </html>