Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit ee69b8d

Browse files
committed
修改优先队列的封装代码
1 parent a9b838e commit ee69b8d

File tree

2 files changed

+26
-12
lines changed

2 files changed

+26
-12
lines changed

‎src/PriorityQueue/index.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
import { PriorityQueue } from './priorityQueue';
22

3-
// ----- 优先队列结构测试 -----//
3+
// ---------------- 封装的优先队列结构测试 ---------------- //
44
console.log('// ----- 优先队列结构测试 START -----//');
55

66
const priorityQueue = new PriorityQueue();
77

8-
// 入队
8+
// 入队 enqueue() 测试
99
priorityQueue.enqueue('A', 10);
1010
priorityQueue.enqueue('B', 15);
1111
priorityQueue.enqueue('C', 11);
1212
priorityQueue.enqueue('D', 20);
1313
priorityQueue.enqueue('E', 18);
14-
1514
console.log(priorityQueue.items);
1615
//--> output:
1716
// QueueElement {element: "A", priority: 10}
@@ -20,7 +19,8 @@ console.log(priorityQueue.items);
2019
// QueueElement {element: "E", priority: 18}
2120
// QueueElement {element: "D", priority: 20}
2221

23-
// 出队
22+
23+
// 出队 dequeue() 测试
2424
priorityQueue.dequeue();
2525
priorityQueue.dequeue();
2626
console.log(priorityQueue.items);
@@ -29,8 +29,13 @@ console.log(priorityQueue.items);
2929
// QueueElement {element: "E", priority: 18}
3030
// QueueElement {element: "D", priority: 20}
3131

32+
// isEmpty() 测试
3233
console.log(priorityQueue.isEmpty()); //--> false
34+
35+
// size() 测试
3336
console.log(priorityQueue.size()); //--> 3
37+
38+
// toString() 测试
3439
console.log(priorityQueue.toString()); //--> B-15 E-18 D-20
3540

3641
console.log('// ----- 优先队列结构测试 END -----//');

‎src/PriorityQueue/priorityQueue.js

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import Queue from '../Queue/queue';
2+
13
/**
24
* 优先队列结构的封装
35
*/
@@ -10,14 +12,15 @@ class QueueElement {
1012
}
1113
}
1214

13-
// 优先队列类
14-
export class PriorityQueue {
15+
// 优先队列类(继承 Queue 类)
16+
export class PriorityQueue extendsQueue{
1517

1618
constructor() {
17-
this.items=[];
19+
super();
1820
}
1921

20-
// enqueue() 入队,将元素按优先级加入到队列中
22+
// enqueue(element, priority) 入队,将元素按优先级加入到队列中
23+
// 重写 enqueue()
2124
enqueue(element, priority) {
2225
// 根据传入的元素,创建 QueueElement 对象
2326
const queueElement = new QueueElement(element, priority);
@@ -48,25 +51,31 @@ export class PriorityQueue {
4851
}
4952

5053
// dequeue() 出队,从队列中删除前端元素,返回删除的元素
54+
// 继承 Queue 类的 dequeue()
5155
dequeue() {
52-
return this.items.shift();
56+
return super.dequeue();
5357
}
5458

5559
// front() 查看队列的前端元素
60+
// 继承 Queue 类的 front()
5661
front() {
57-
return this.items[0];
62+
return super.front();
5863
}
5964

6065
// isEmpty() 查看队列是否为空
66+
// 继承 Queue 类的 isEmpty()
6167
isEmpty() {
62-
return this.items.length===0;
68+
return super.isEmpty();
6369
}
6470

6571
// size() 查看队列中元素的个数
72+
// 继承 Queue 类的 size()
6673
size() {
67-
return this.items.length;
74+
return super.size();
6875
}
6976

77+
// toString() 将队列中元素以字符串形式返回
78+
// 重写 toString()
7079
toString() {
7180
let result = '';
7281
for (let item of this.items) {

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /