insertBefore
Function parameters
Parameters
- list:*DoublyLinkedList
- existing_node:*Node
- new_node:*Node
This struct contains only the prev and next pointers and not any data
Types
- Node
- This struct contains only the prev and next pointers and not any data
Functions in this namespace
Functions
- concatByMoving
- Concatenate list2 onto the end of list1, removing all entries from the former.
- append
- Insert a new node at the end of the list.
- prepend
- Insert a new node at the beginning of the list.
- remove
- Remove a node from the list.
- pop
- Remove and return the last node in the list.
- popFirst
- Remove and return the first node in the list.
- len
- Iterate over all nodes, returning the count.
Source
Implementation
pub fn insertBefore(list: *DoublyLinkedList, existing_node: *Node, new_node: *Node) void {
new_node.next = existing_node;
if (existing_node.prev) |prev_node| {
// Intermediate node.
new_node.prev = prev_node;
prev_node.next = new_node;
} else {
// First element of the list.
new_node.prev = null;
list.first = new_node;
}
existing_node.prev = new_node;
}