LinkedLists¶
Usage
use LinkedLists;
or
import LinkedLists;
This module provides a simple singly linked list.
Note
This module is expected to change in the future.
- record LinkedList: serializable¶
A singly linked list.
Note
destroy
must be called to reclaim any memory used by the list.- type eltType¶
The type of the data stored in every node.
- var size: int¶
The number of nodes in the list.
- iter these()¶
Iterate over the list, yielding each element.
- Yield type
eltType
- proc ref append(e: eltType)¶
Append e to the list.
- proc ref push_back(e: eltType)¶
Synonym for append.
- proc ref append(e: eltType, es: eltType ...?k)
Append all of the supplied arguments to the list.
- proc ref prepend(e: eltType)¶
Prepend e to the list.
- proc push_front(e: eltType)¶
Synonym for prepend.
- proc ref concat(l: LinkedList(eltType))¶
Append all the elements in l to the end of the list.
- proc ref remove(x: eltType)¶
Remove the first encountered instance of x from the list. Does nothing if x is not present in the list.
- proc ref pop_front(): eltType¶
Remove the first element from the list and return it. It is an error to call this function on an empty list.
- proc contains(const e: eltType): bool¶
Returns true if this list contains an element equal to the value of e. Returns false otherwise.
- Arguments
e – The element search for
- Returns
true if the e was found
- Return type
bool
- proc ref first() ref: eltType¶
Returns a reference to the first item in the list
Warning
Calling this method on an empty list will cause the currently running program to halt. If the –fast flag is used, no safety checks will be performed
- Returns
a reference to the first item in the list
- Return type
ref eltType
- proc ref last() ref: eltType¶
Returns a reference to the last item in the list
Warning
Calling this method on an empty list will cause the currently running program to halt. If the –fast flag is used, no safety checks will be performed
- Returns
a reference to the last item in the list
- Return type
ref eltType
- proc ref destroy()¶
Delete every node in the list.
- proc serialize(writer, ref serializer) throws¶
- proc ref deserialize(reader: fileReader, ref deserializer) throws where reader.deserializerType == IO.defaultDeserializer¶
- proc ref deserialize(reader: fileReader, ref deserializer) throws
- proc makeList(x ...?k)¶
Initialize a new
LinkedList
containing all of the supplied arguments.- Arguments
x : T – Every argument must be of type T.
- Return type
LinkedList(T)