Struct
GLibNode
Description
struct GNode {
gpointer data;
GNode* next;
GNode* prev;
GNode* parent;
GNode* children;
}
The GNode
struct represents one node in a [nary tree][glibNaryTrees].
Structure members
data 
Contains the actual data of the node. 
next 
Points to the node’s next sibling (a sibling is another

prev 
Points to the node’s previous sibling. 
parent 
Points to the parent of the 
children 
Points to the first child of the 
Functions
g_node_new
Creates a new GNode
containing the given data.
Used to create the first node in a tree.
Instance methods
g_node_child_index
Gets the position of the first child of a GNode
which contains the given data.
g_node_child_position
Gets the position of a GNode
with respect to its siblings.
child
must be a child of node
. The first child is numbered 0,
the second 1, and so on.
g_node_children_foreach
Calls a function for each of the children of a GNode
. Note that it
doesn’t descend beneath the child nodes. func
must not do anything
that would modify the structure of the tree.
g_node_copy
Recursively copies a GNode
(but does not deepcopy the data inside the
nodes, see g_node_copy_deep()
if you need that).
g_node_depth
Gets the depth of a GNode
.
g_node_destroy
Removes root
and its children from the tree, freeing any memory allocated.
g_node_find
Finds a GNode
in a tree.
g_node_find_child
Finds the first child of a GNode
with the given data.
g_node_first_sibling
Gets the first sibling of a GNode
.
This could possibly be the node itself.
g_node_get_root
Gets the root of a tree.
g_node_insert
Inserts a GNode
beneath the parent at the given position.
g_node_insert_after
Inserts a GNode
beneath the parent after the given sibling.
g_node_insert_before
Inserts a GNode
beneath the parent before the given sibling.
g_node_is_ancestor
Returns TRUE
if node
is an ancestor of descendant
.
This is true if node is the parent of descendant
,
or if node is the grandparent of descendant
etc.
g_node_last_child
Gets the last child of a GNode
.
g_node_last_sibling
Gets the last sibling of a GNode
.
This could possibly be the node itself.
g_node_max_height
Gets the maximum height of all branches beneath a GNode
.
This is the maximum distance from the GNode
to all leaf nodes.
g_node_n_children
Gets the number of children of a GNode
.
g_node_n_nodes
Gets the number of nodes in a tree.
g_node_nth_child
Gets a child of a GNode
, using the given index.
The first child is at index 0. If the index is
too big, NULL
is returned.
g_node_prepend
Inserts a GNode
as the first child of the given parent.
g_node_reverse_children
Reverses the order of the children of a GNode
.
(It doesn’t change the order of the grandchildren.)
g_node_traverse
Traverses a tree starting at the given root GNode
.
It calls the given function for each node visited.
The traversal can be halted at any point by returning TRUE
from func
.
func
must not do anything that would modify the structure of the tree.
g_node_unlink
Unlinks a GNode
from a tree, resulting in two separate trees.