Skip to content

Commit b14f550

Browse files
authored
Fix LFUCache (TheAlgorithms#3847)
1 parent b6c1d25 commit b14f550

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

src/main/java/com/thealgorithms/datastructures/caches/LFUCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ private void addNodeWithUpdatedFrequency(Node node) {
101101
node.next = temp;
102102
node.previous = temp.previous;
103103
temp.previous.next = node;
104-
node.previous = temp.previous;
104+
temp.previous = node;
105105
break;
106106
}
107107
} else {

src/test/java/com/thealgorithms/datastructures/caches/LFUCacheTest.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,4 +61,22 @@ void testLFUCacheWithStringValueShouldPass() {
6161
assertEquals(null, lfuCache.get(2));
6262
assertEquals("Zeta", lfuCache.get(7));
6363
}
64+
65+
/**
66+
* test addNodeWithUpdatedFrequency method
67+
* @author yuluo
68+
*/
69+
@Test
70+
void testAddNodeWithUpdatedFrequency() {
71+
LFUCache<Integer, String> lfuCache = new LFUCache<>(3);
72+
lfuCache.put(1, "beijing");
73+
lfuCache.put(2, "shanghai");
74+
lfuCache.put(3, "gansu");
75+
76+
assertEquals("beijing", lfuCache.get(1));
77+
78+
lfuCache.put(1, "shanxi");
79+
80+
assertEquals("shanxi", lfuCache.get(1));
81+
}
6482
}

0 commit comments

Comments
 (0)