linkedlist: remove unused methods
PR-URL: https://github.com/nodejs/node/pull/11726 Reviewed-By: Fedor Indutny <fedor.indutny@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Sakthipriyan Vairamani <thechargingvolcano@gmail.com> Reviewed-By: Rod Vagg <rod@vagg.org>
This commit is contained in:
parent
394b6ac5cb
commit
b40dab553f
@ -5,26 +5,12 @@ function init(list) {
|
||||
list._idlePrev = list;
|
||||
}
|
||||
|
||||
// create a new linked list
|
||||
function create() {
|
||||
const list = { _idleNext: null, _idlePrev: null };
|
||||
init(list);
|
||||
return list;
|
||||
}
|
||||
|
||||
// show the most idle item
|
||||
function peek(list) {
|
||||
if (list._idlePrev === list) return null;
|
||||
return list._idlePrev;
|
||||
}
|
||||
|
||||
// remove the most idle item from the list
|
||||
function shift(list) {
|
||||
const first = list._idlePrev;
|
||||
remove(first);
|
||||
return first;
|
||||
}
|
||||
|
||||
// remove a item from its list
|
||||
function remove(item) {
|
||||
if (item._idleNext) {
|
||||
@ -61,9 +47,7 @@ function isEmpty(list) {
|
||||
|
||||
module.exports = {
|
||||
init,
|
||||
create,
|
||||
peek,
|
||||
shift,
|
||||
remove,
|
||||
append,
|
||||
isEmpty
|
||||
|
@ -59,14 +59,8 @@ L.append(list, D);
|
||||
// list -> A -> B -> C -> D
|
||||
assert.strictEqual(A, L.peek(list));
|
||||
|
||||
assert.strictEqual(A, L.shift(list));
|
||||
// list -> B -> C -> D
|
||||
assert.strictEqual(B, L.peek(list));
|
||||
|
||||
assert.strictEqual(B, L.shift(list));
|
||||
// list -> C -> D
|
||||
assert.strictEqual(C, L.peek(list));
|
||||
|
||||
L.remove(A);
|
||||
L.remove(B);
|
||||
// B is already removed, so removing it again shouldn't hurt.
|
||||
L.remove(B);
|
||||
// list -> C -> D
|
||||
@ -104,26 +98,10 @@ L.append(list, A);
|
||||
|
||||
// Append should REMOVE C from the list and append it to the end.
|
||||
L.append(list, C);
|
||||
|
||||
// list -> D -> B -> A -> C
|
||||
assert.strictEqual(D, L.shift(list));
|
||||
// list -> B -> A -> C
|
||||
assert.strictEqual(B, L.peek(list));
|
||||
assert.strictEqual(B, L.shift(list));
|
||||
// list -> A -> C
|
||||
assert.strictEqual(A, L.peek(list));
|
||||
assert.strictEqual(A, L.shift(list));
|
||||
// list -> C
|
||||
assert.strictEqual(C, L.peek(list));
|
||||
assert.strictEqual(C, L.shift(list));
|
||||
// list
|
||||
assert.ok(L.isEmpty(list));
|
||||
|
||||
const list2 = L.create();
|
||||
const list3 = L.create();
|
||||
assert.ok(L.isEmpty(list2));
|
||||
assert.ok(L.isEmpty(list3));
|
||||
|
||||
// Objects should have identical keys/properties, but be different objects.
|
||||
assert.deepStrictEqual(list2, list3);
|
||||
assert.notStrictEqual(list2, list3);
|
||||
assert.strictEqual(D, L.peek(list));
|
||||
assert.strictEqual(B, L.peek(D));
|
||||
assert.strictEqual(A, L.peek(B));
|
||||
assert.strictEqual(C, L.peek(A));
|
||||
assert.strictEqual(list, L.peek(C));
|
||||
|
Loading…
x
Reference in New Issue
Block a user