A speedy LinkedList and DoubleLinkedList data structure implementation in PHP.
composer require blister/linkedlist
$list = new Blister\LinkedList();
// Add to the end of the LinkedList
$list->push('Hello!');
$list->push('World!');
$list->push(array('key' => 'val'));
$list->push(true);
$list->push('Last!');
// Add to the front of the LinkedList
$list->unshift('New First!');
// Get the length of the LinkedList
$len = $list->length; // 6
// Searching inside the list
$found_index = $list->index('World!'); // 2
$found = $list->find('World'); // true
$found = $list->find('Missing'); // false
// removing elements
$last = $list->pop(); // 'Last!'
$first = $list->shift(); // 'First!'
$middle = $list->remove('World!'); // 'World!'
$third = $list->removeAt(1); // array('key' => 'val')
This LinkedList implementation comes with a full suite of PHPUnit tests.
composer run-script test
-
toArray():array
-
findAll(mixed $needle):array
-
fill(int $count, mixed $value):bool
-
findFromTail(mixed $needle):mixed
-
indexFromTail(mixed $needle):int
-
print():void
Eric Ryan Harrison, @blister