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:gpointerContains the actual data of the node.
next:GNodePoints to the node’s next sibling (a sibling is another
GNodewith the same parent).prev:GNodePoints to the node’s previous sibling.
parent:GNodePoints to the parent of the
GNode, or isNULLif theGNodeis the root of the tree.children:GNodePoints to the first child of the
GNode. The other children are accessed by using thenextpointer 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.