Skip to content

Commit b47f9d2

Browse files
committed
[feature] 普通队列实现
first in -> first out
1 parent f64102f commit b47f9d2

File tree

2 files changed

+46
-0
lines changed

2 files changed

+46
-0
lines changed

src/App.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import "./styles.css";
2+
import "./queue/ordinary/index";
23

34
export default function App() {
45
return (

src/queue/ordinary/index.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
// 普通队列,first in -> first out
2+
export default class Queue<T> {
3+
private list: T[] = [];
4+
5+
// 向队列添加元素(一个或多个)
6+
enqueue(item: T | T[]) {
7+
if (Array.isArray(item)) {
8+
return (this.list = this.list.concat(item));
9+
}
10+
this.list.push(item);
11+
}
12+
13+
// 从队列移除元素
14+
dequeue() {
15+
this.list.shift();
16+
}
17+
18+
front = () => (this.list.length > 0 ? this.list[0] : "");
19+
20+
isEmpty() {
21+
return !!!this.list.length;
22+
}
23+
24+
size() {
25+
return this.list.length;
26+
}
27+
28+
getList() {
29+
return this.list;
30+
}
31+
}
32+
33+
const queue = new Queue<string>();
34+
queue.enqueue("loy1");
35+
36+
queue.enqueue(["bike", "pino"]);
37+
38+
queue.dequeue();
39+
40+
console.log("list2====>", queue.getList());
41+
42+
// queue.dequeue();
43+
// queue.dequeue();
44+
45+
console.log("empty===>", queue.isEmpty());

0 commit comments

Comments
 (0)