linked list
载入中...
搜索中...
未找到
include
LRUList.h
1
#ifndef LRU_LIST_HXX
2
#define LRU_LIST_HXX
3
#include "DoubleLink.h"
7
template
<
class
T>
8
class
RemovedTail
{
9
public
:
10
T
value;
11
bool
tailRemoved;
12
public
:
14
RemovedTail
() {
15
this->tailRemoved =
false
;
16
}
17
};
18
22
template
<
class
T>
23
class
LRUList
:
24
public
DoubleLink<T>
25
{
26
private
:
27
unsigned
int
maxCount;
28
public
:
29
LRUList
(
unsigned
int
count
);
30
void
addNewElement
(
T
e
,
RemovedTail<T>
&
remvedTail
);
31
};
32
36
template
<
class
T>
37
LRUList<T>::LRUList
(
unsigned
int
count
) {
38
maxCount =
count
;
39
}
43
template
<
class
T>
44
void
LRUList<T>::addNewElement
(
T
e
,
RemovedTail<T>
&
remvedTail
) {
45
DNode<T>
*
node
= this->
findNode
(
e
);
46
if
(
node
!=
NULL
) {
47
this->
removeNode
(
node
);
48
this->
insertNodeFirst
(
node
);
49
}
else
{
50
if
((this->
count
) < (this->maxCount)) {
51
this->
insertFirst
(
e
);
52
}
else
{
53
remvedTail
.tailRemoved =
true
;
54
this->
deleteLast
(&
remvedTail
.value);
55
this->
insertFirst
(
e
);
56
}
57
}
58
}
59
60
#endif
LRUList
Definition
LRUList.h:25
LRUList::LRUList
LRUList(unsigned int count)
Definition
LRUList.h:37
LRUList::addNewElement
void addNewElement(T e, RemovedTail< T > &remvedTail)
Definition
LRUList.h:44
RemovedTail
Definition
LRUList.h:8
RemovedTail::RemovedTail
RemovedTail()
Definition
LRUList.h:14
DNode
Definition
DoubleLink.h:11
生成于 2025年 十二月 11日 星期四 09:14:45 , 为 linked list使用
1.9.8