Skip to content

Commit b42d3ca

Browse files
committed
feat: LRU 淘汰缓存算法
1 parent ea859b3 commit b42d3ca

File tree

2 files changed

+32
-7
lines changed

2 files changed

+32
-7
lines changed

exercise/LRU.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import { LinkList, Node } from "../src/code/1.LinkList";
2+
3+
export const generateLinkList = () => {
4+
new LinkList();
5+
};
6+
export class LRU {
7+
constructor(limitSize) {
8+
this.limitSize = limitSize;
9+
this.linklist = new LinkList();
10+
}
11+
12+
add(element) {
13+
this.linklist.insert(element, 0);
14+
15+
if (this.linklist.size() > this.limitSize) {
16+
this.linklist.removeAt(this.linklist.size() - 1);
17+
}
18+
}
19+
}

src/index.js

+13-7
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,25 @@ import { Graph } from "./code/23.Graph.js";
2121
import { breadthFirstSearch, BFS } from "./code/24.breadth-first-search.js";
2222
import { bubbleSort } from "./sort/bubble-sort.js";
2323
import { selectionSort } from "./sort/selection-sort.js";
24+
import { LRU } from "../exercise/LRU";
2425

25-
const linklist = new LinkList();
2626

27-
linklist.push(5);
28-
linklist.push(4);
29-
linklist.push(3);
30-
linklist.push(2);
31-
linklist.push(1);
27+
28+
const linklist = new LRU(5);
29+
30+
linklist.add(1);
31+
linklist.add(2);
32+
linklist.add(3);
33+
linklist.add(4);
34+
linklist.add(5);
35+
linklist.add(100);
36+
linklist.add(200);
37+
linklist.add(300);
3238

3339
// console.log(linklist);
3440

3541

36-
console.log(linklist.linklistReverse());
42+
console.log(linklist);
3743

3844
export {
3945
LinkList,

0 commit comments

Comments
 (0)