Struct
GLibNode
Description [src]
struct GNode {
gpointer data;
GNode* next;
GNode* prev;
GNode* parent;
GNode* children;
}
The GNode
struct represents one node in a n-ary tree.
Structure members
data:
gpointer
Contains the actual data of the node.
next:
GNode
Points to the node’s next sibling (a sibling is another
GNode
with the same parent).prev:
GNode
Points to the node’s previous sibling.
parent:
GNode
Points to the parent of the
GNode
, or isNULL
if theGNode
is the root of the tree.children:
GNode
Points to the first child of the
GNode
. The other children are accessed by using thenext
pointer of each child.
Instance methods
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 deep-copy the data inside the
nodes, see g_node_copy_deep()
if you need that).
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_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_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_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.