GLib.Node

Fields

Name

Type

Access

Description

children

GLib.Node

r/w

points to the first child of the GLib.Node. The other children are accessed by using the next pointer of each child.

data

object

r/w

contains the actual data of the node.

next

GLib.Node

r/w

points to the node’s next sibling (a sibling is another GLib.Node with the same parent).

parent

GLib.Node

r/w

points to the parent of the GLib.Node, or is None if the GLib.Node is the root of the tree.

prev

GLib.Node

r/w

points to the node’s previous sibling.

Methods

class

pop_allocator ()

class

push_allocator (allocator)

child_index (data)

child_position (child)

children_foreach (flags, func, *data)

depth ()

destroy ()

is_ancestor (descendant)

max_height ()

n_children ()

n_nodes (flags)

reverse_children ()

traverse (order, flags, max_depth, func, *data)

unlink ()

Details

class GLib.Node

The GLib.Node struct represents one node in a n-ary tree.

classmethod pop_allocator()[source]
classmethod push_allocator(allocator)[source]
Parameters:

allocator (GLib.Allocator) –

child_index(data)[source]
Parameters:

data (object or None) – the data to find

Returns:

the index of the child of self which contains data, or -1 if the data is not found

Return type:

int

Gets the position of the first child of a GLib.Node which contains the given data.

child_position(child)[source]
Parameters:

child (GLib.Node) – a child of self

Returns:

the position of child with respect to its siblings

Return type:

int

Gets the position of a GLib.Node with respect to its siblings. child must be a child of self. The first child is numbered 0, the second 1, and so on.

children_foreach(flags, func, *data)[source]
Parameters:

Calls a function for each of the children of a GLib.Node. Note that it doesn’t descend beneath the child nodes. func must not do anything that would modify the structure of the tree.

depth()[source]
Returns:

the depth of the GLib.Node

Return type:

int

Gets the depth of a GLib.Node.

If self is None the depth is 0. The root node has a depth of 1. For the children of the root node the depth is 2. And so on.

destroy()[source]

Removes self and its children from the tree, freeing any memory allocated.

is_ancestor(descendant)[source]
Parameters:

descendant (GLib.Node) – a GLib.Node

Returns:

True if self is an ancestor of descendant

Return type:

bool

Returns True if self is an ancestor of descendant. This is true if node is the parent of descendant, or if node is the grandparent of descendant etc.

max_height()[source]
Returns:

the maximum height of the tree beneath self

Return type:

int

Gets the maximum height of all branches beneath a GLib.Node. This is the maximum distance from the GLib.Node to all leaf nodes.

If self is None, 0 is returned. If self has no children, 1 is returned. If self has children, 2 is returned. And so on.

n_children()[source]
Returns:

the number of children of self

Return type:

int

Gets the number of children of a GLib.Node.

n_nodes(flags)[source]
Parameters:

flags (GLib.TraverseFlags) – which types of children are to be counted, one of GLib.TraverseFlags.ALL, GLib.TraverseFlags.LEAVES and GLib.TraverseFlags.NON_LEAVES

Returns:

the number of nodes in the tree

Return type:

int

Gets the number of nodes in a tree.

reverse_children()[source]

Reverses the order of the children of a GLib.Node. (It doesn’t change the order of the grandchildren.)

traverse(order, flags, max_depth, func, *data)[source]
Parameters:

Traverses a tree starting at the given root GLib.Node. 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.

Unlinks a GLib.Node from a tree, resulting in two separate trees.