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][glib-N-ary-Trees].
Structure members
data
Contains the actual data of the node.
next
Points to the node’s next sibling (a sibling is another
GNode
with the same parent).prev
Points to the node’s previous sibling.
parent
Points to the parent of the
GNode
, or isNULL
if theGNode
is the root of the tree.children
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.