/builddir/build/BUILD/gru-0.1.0/src/collection/gru_tree.c File Reference

#include "gru_tree.h"

Data Structures

struct  gru_tree_node_wrapper_t_

Typedefs

typedef struct
gru_tree_node_wrapper_t_ 
gru_tree_wrapper_t

Functions

gru_tree_node_tgru_tree_new (const void *data)
 Creates a new tree and returns a pointer to the root node.
void gru_tree_destroy (gru_tree_node_t **ptr)
 Destroys a tree node and all it's descendants.
gru_tree_node_tgru_tree_add_child (gru_tree_node_t *node, const void *data)
 Adds a child node to a given node.
const gru_tree_node_tgru_tree_search (gru_tree_node_t *node, compare_function_t comparable, const void *other)
 Searches the tree using DFS.
bool gru_tree_remove_child (gru_tree_node_t *node, compare_function_t comparable, const void *other)
 Removes a direct descendant of a node.
const gru_tree_node_tgru_tree_for_each (gru_tree_node_t *node, tree_callback_fn callback, void *payload)
 Traverses the tree executing a set of operations.
void gru_tree_for_each_child (gru_tree_node_t *node, tree_callback_fn callback, void *payload)
 Executes an operation on each child of the given node.
uint32_t gru_tree_count_children (gru_tree_node_t *node)
 Returns the number of children of a node.
uint32_t gru_tree_count (gru_tree_node_t *node)
 Returns the number of children of a tree.
const gru_tree_node_tgru_tree_search_child (gru_tree_node_t *node, compare_function_t comparable, const void *other)
 Searches only the immediate children of the node.

Typedef Documentation


Function Documentation

gru_tree_node_t* gru_tree_add_child ( gru_tree_node_t node,
const void *  data 
)

Adds a child node to a given node.

Parameters:
node The node to add the child to
data The data to add to the child
Returns:
A pointer to the newly added node. This node does *NOT* need to be free'd. It will be free'd along with its parent
Examples:
collection/gru_tree_test.c.
uint32_t gru_tree_count ( gru_tree_node_t node  ) 

Returns the number of children of a tree.

Parameters:
node The node to count the number of children
Returns:
The number of items
Note:
The node must not be NULL, otherwise it returns 0
Examples:
collection/gru_tree_test.c.
uint32_t gru_tree_count_children ( gru_tree_node_t node  ) 

Returns the number of children of a node.

Parameters:
node The node to count the number of children
Returns:
The number of items
Note:
The node must not be NULL, otherwise it returns 0
Examples:
collection/gru_tree_test.c.
void gru_tree_destroy ( gru_tree_node_t **  ptr  ) 

Destroys a tree node and all it's descendants.

Parameters:
ptr A pointer-to-pointer for the node to destroy
Examples:
collection/gru_tree_test.c.
const gru_tree_node_t* gru_tree_for_each ( gru_tree_node_t node,
tree_callback_fn  callback,
void *  payload 
)

Traverses the tree executing a set of operations.

Parameters:
node The starting node for the search
callback A callback function to be executed for all the nodes
payload Payload data to be passed to the passed to the callback
Returns:
A pointer to the node or NULL if not found
Examples:
collection/gru_tree_test.c.
void gru_tree_for_each_child ( gru_tree_node_t node,
tree_callback_fn  callback,
void *  payload 
)

Executes an operation on each child of the given node.

Parameters:
node The starting node for the search
callback A callback function to be executed for all the nodes
payload Payload data to be passed to the passed to the callback
Examples:
collection/gru_tree_test.c.
gru_tree_node_t* gru_tree_new ( const void *  data  ) 

Creates a new tree and returns a pointer to the root node.

Parameters:
data The data for the root node
Returns:
A pointer to the root node
Examples:
collection/gru_tree_test.c.
bool gru_tree_remove_child ( gru_tree_node_t node,
compare_function_t  comparable,
const void *  other 
)

Removes a direct descendant of a node.

Parameters:
node The parent node
comparable A comparator function
other The data to compare to
Returns:
true if removed or false otherwise
Examples:
collection/gru_tree_test.c.
const gru_tree_node_t* gru_tree_search ( gru_tree_node_t node,
compare_function_t  comparable,
const void *  other 
)

Searches the tree using DFS.

Parameters:
node The starting node for the search
comparable A comparator function
other The data to compare to
Returns:
A pointer to the node or NULL if not found
Examples:
collection/gru_tree_test.c.
const gru_tree_node_t* gru_tree_search_child ( gru_tree_node_t node,
compare_function_t  comparable,
const void *  other 
)

Searches only the immediate children of the node.

Parameters:
node The starting node for the search
comparable A comparator function
other The data to compare to
Returns:
A pointer to the node or NULL if not found
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Defines

Generated on 10 Feb 2018 for GRU - Generic Reusable Utilities by  doxygen 1.6.1