This graph shows which files directly or indirectly include this file:
Go to the source code of this file.
Data Structures | |
struct | BinaryNode |
A node in a binary tree. More... | |
struct | DoubleNode |
A node in a double linked list. More... | |
struct | IndirectNode |
A node in a linked list that additionally points to a node in another list. More... | |
struct | Node |
A node in a single linked list. More... | |
Defines | |
#define | NbrNodes(linkedList) FindLast(linkedList, NULL) |
Returns the number of nodes in a list. More... | |
#define | SortedDoubleToBinary(l) SortedDoubleToBinaryWithSize(l, NbrNodes((NodePtr)(l))); |
Transforms a double linked list into a binary tree. More... | |
Typedefs | |
typedef unsigned char | UInt8 |
typedef signed char | SInt8 |
typedef unsigned short | UInt16 |
typedef signed short | SInt16 |
typedef unsigned long | UInt32 |
typedef signed long | SInt32 |
typedef Node | Node |
A node in a single linked list. More... | |
typedef Node * | NodePtr |
A node in a single linked list. More... | |
typedef IndirectNode | IndirectNode |
A node in a linked list that additionally points to a node in another list. More... | |
typedef IndirectNode * | IndirectNodePtr |
A node in a linked list that additionally points to a node in another list. More... | |
typedef DoubleNode | DoubleNode |
A node in a double linked list. More... | |
typedef DoubleNode * | DoubleNodePtr |
A node in a double linked list. More... | |
typedef BinaryNode | BinaryNode |
A node in a binary tree. More... | |
typedef BinaryNode * | BinaryNodePtr |
A node in a binary tree. More... | |
Functions | |
UInt32 | DestroyLinkedList (NodePtr linkedList, UInt8(*DestructorFunction)(NodePtr theNode)) |
Destroys all elements in a linked list. More... | |
UInt32 | FindLast (NodePtr linkedList, NodePtr *last) |
Finds the last node in a linked list. More... | |
NodePtr | GetNthNode (NodePtr linkedList, UInt32 n) |
Finds the Nth node of a linked list. More... | |
NodePtr | SplitAtNth (NodePtr linkedList, UInt32 n) |
Splits a linked list in two. More... | |
IndirectNodePtr | FindAndList (NodePtr linkedList, UInt8(*IsWhatIWant)(NodePtr theNode)) |
Finds nodes in a linked list based on a "matching" function. More... | |
NodePtr | FindAndMoveOut (NodePtr *linkedListPtr, UInt8(*IsWhatIWant)(NodePtr theNode)) |
Finds and removes nodes based on a "matching" function. More... | |
void | ApplyIndirectOnSimple (IndirectNodePtr indirectList) |
Applies an indirect linked list on a linked list. More... | |
void | InvertList (NodePtr *linkedListPtr) |
Inverses a linked list. More... | |
void | SplitAndMergeSort (NodePtr *linkedList, SInt8(*CompareFuntion)(NodePtr a, NodePtr b)) |
Sorts a linked list. More... | |
void | InvertDoubleList (DoubleNodePtr *doubleLinkedListPtr) |
Same as InvertList, but for double linked lists, and much faster. More... | |
UInt32 | FindFirst (DoubleNodePtr linkedList, DoubleNodePtr *first) |
Same as FindLast, but backwards with a double linked list. More... | |
void | FillPrev (DoubleNodePtr linkedList) |
Fills the "prev" values. More... | |
void | InsertInTree (BinaryNodePtr theNode, BinaryNodePtr *root, SInt8(*CompareFunction)(NodePtr a, NodePtr b)) |
Inserts a node in a binary tree. More... | |
BinaryNodePtr | SortedDoubleToBinaryWithSize (DoubleNodePtr linkedList, UInt32 size) |
Transforms a sorted double linked list into a binary tree. More... | |
DoubleNodePtr | BinaryToDouble (BinaryNodePtr root, UInt8 fillPrev) |
Transforms a (sorted) binary tree to a sorted double linked list. More... | |
IndirectNodePtr * | LeftNodeRight (BinaryNodePtr node, IndirectNodePtr *theList) |
Used only for the BinaryToDouble function. More... | |
void | BalanceTree (BinaryNodePtr *root) |
Balances a binary tree. More... | |
UInt8 | DestroyIndirectNode (NodePtr theNode) |
Destroys an indirect node. More... |
This file assumes that:
char
= 8 bits, short
= 16 bits and long
= 32 bits.
Definition in file LinkedLists.h.