/builddir/build/BUILD/gru-0.2.0/src/collection/gru_tree.h File Reference
#include "gru_collection_callbacks.h"
#include "gru_list.h"
#include "gru_node.h"
#include "common/gru_portable.h"
Go to the source code of this file.
Data Structures |
struct | gru_tree_node_t_ |
Typedefs |
typedef struct gru_tree_node_t_ | gru_tree_node_t |
Functions |
gru_export gru_tree_node_t * | gru_tree_new (const void *data) |
| Creates a new tree and returns a pointer to the root node.
|
gru_export void | gru_tree_destroy (gru_tree_node_t **ptr) |
| Destroys a tree node and all it's descendants.
|
gru_export gru_tree_node_t * | gru_tree_add_child (gru_tree_node_t *node, const void *data) |
| Adds a child node to a given node.
|
gru_export 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.
|
gru_export 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.
|
gru_export bool | gru_tree_remove_child (gru_tree_node_t *node, compare_function_t comparable, const void *other) |
| Removes a direct descendant of a node.
|
gru_export 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.
|
gru_export 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.
|
gru_export uint32_t | gru_tree_count_children (gru_tree_node_t *node) |
| Returns the number of children of a node.
|
gru_export uint32_t | gru_tree_count (gru_tree_node_t *node) |
| Returns the number of children of a tree.
|
Typedef Documentation
Function Documentation
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
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
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
Destroys a tree node and all it's descendants.
- Parameters:
-
| ptr | A pointer-to-pointer for the node to destroy |
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
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 |
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
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
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
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