Function insertBefore [src]

Prototype

pub fn insertBefore(list: *DoublyLinkedList, existing_node: *Node, new_node: *Node) void

Parameters

list: *DoublyLinkedListexisting_node: *Nodenew_node: *Node

Source

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; }