libGimbal 0.1.0
C17-Based Extended Standard Library and Cross-Language Runtime Framework
Loading...
Searching...
No Matches
GblDoublyLinkedListNode Struct Reference

#include <gimbal_doubly_linked_list.h>

Data Fields

union { 
 
   struct GblDoublyLinkedListNode *   pNext 
 
   GblLinkedListNode   singleNode 
 
};  
 
struct GblDoublyLinkedListNodepPrev
 

Detailed Description

Intrustive doubly linked list structure with vector-style API.

GblDoublyLinkedListNode is the low-level API around managing manually allocated, intrusive linked list structures with the list nodes embedded within their containing structures.

Operation Time Complexity
iteration O(N)
insertion/removal (middle) O(N)
insertion/removal (front or back) O(1)
access (front or back) O(1)
random access (middle) O(N)
Note
For more a more user-friendly, high-level, abstract, non-intrusive circularly linked list structure which can be filled with arbitrary data and whose allocations are managed automatically, see the GblRingList API, built upon this one.
See also
GblRingList

Definition at line 50 of file gimbal_doubly_linked_list.h.

Field Documentation

◆ pNext

struct GblDoublyLinkedListNode* GblDoublyLinkedListNode::pNext

Definition at line 52 of file gimbal_doubly_linked_list.h.

◆ singleNode

GblLinkedListNode GblDoublyLinkedListNode::singleNode

Definition at line 53 of file gimbal_doubly_linked_list.h.

◆ pPrev

struct GblDoublyLinkedListNode* GblDoublyLinkedListNode::pPrev

Definition at line 55 of file gimbal_doubly_linked_list.h.


The documentation for this struct was generated from the following file: