Method

GLibTreeinsert_node

since: 2.68

Declaration

GTreeNode*
g_tree_insert_node (
  GTree* tree,
  gpointer key,
  gpointer value
)

Description

Inserts a key/value pair into a GTree.

If the given key already exists in the GTree its corresponding value is set to the new value. If you supplied a value_destroy_func when creating the GTree, the old value is freed using that function. If you supplied a key_destroy_func when creating the GTree, the passed key is freed using that function.

The tree is automatically ‘balanced’ as new key/value pairs are added, so that the distance from the root to every leaf is as small as possible. The cost of maintaining a balanced tree while inserting new key/value result in a O(n log(n)) operation where most of the other operations are O(log(n)).

Available since: 2.68

Parameters

key

Type: gpointer

The key to insert.

The argument can be NULL.
The data is owned by the caller of the function.
value

Type: gpointer

The value corresponding to the key.

The argument can be NULL.
The data is owned by the caller of the function.

Return value

Type: GTreeNode

The inserted (or set) node or NULL if insertion would overflow the tree node counter.

The data is owned by the instance.
The return value can be NULL.