This page is updated as of blz v2.6
The Lists package aims to contain standard List data structures.
Range
range(end) - Returns an array containing all integers [0, end)
range(start, end) - Returns an array containing all integers [start, end)
Example:
import Lists
print(range(2))
print(range(2, 5))
Output:
[0, 1]
[2, 3, 4]
Iterator
Iterator(array) - Creates an iterator over an array
Iterator::has_next?
has_next?() - Returns a boolean if the iterator has a next element
Example:
import Lists
it1 = Iterator([])
it2 = Iterator([1])
print(it1.has_next?())
print(it2.has_next?())
Output:
false
true
Iterator::next
next() - Returns the next element
Example:
import Lists
it = Iterator([1, 2, 3])
print(it.next())
print(it.next())
print(it.next())
Output:
1
2
3
Iterator::remaining
remaining() - Returns the remaining part of the list
Example:
import Lists
it = Iterator([1, 2, 3])
print(it.remaining())
it.next()
print(it.remaining())
it.next()
print(it.remaining())
it.next()
print(it.remaining())
Output:
[1, 2, 3]
[2, 3]
[3]
[]
LinkedList
LinkedList(value) - Creates a LinkedList with 1 element (value)
You can access the first elements value using list.value and the tail of the list using list.next
LinkedList::add
add(value) - Adds the value to the end of the linked list
Note this is an O(n) operation
Example:
import Lists
list = LinkedList(1)
print(list)
list.add(2)
print(list)
Output:
1
1, 2
LinkedList::add_at_beginning
add_at_beginning(value) - Adds the value to the beginning of a linked list
Note this is an O(1) operation
NOTE: This operation does not mutate, you must use reassignmnet
Example:
import Lists
list = LinkedList(1)
print(list)
list = list.add_at_beginning(0) # Must use reassignment
print(list)
Output:
1
0, 1
LinkedList::length
length() - Returns the length of the linked list
Note this is an O(n) operation
Example:
import Lists
list = LinkedList(1)
print(list.length())
list.add(2)
print(list.length())
Output:
1
2