* Usage: Tree* tree_new(<Type> type)
*/
#define tree_new(type) \
-{ \
- _tree_new(sizeof(type)); \
-}
+ _tree_new(sizeof(type))
/**
* @brief Copy constructor (shallow copy, ok for basic types).
*/
#define tree_set_root(tree, data) \
{ \
- typeof((data)) tmp = data; \
+ typeof(data) tmp = data; \
_tree_set_root(tree, &tmp); \
}
*/
#define tree_set(tree, treeNode, data) \
{ \
- typeof((data)) tmp = data; \
- _tree_set(tree,treeNode,&tmp); \
+ typeof(data) tmp = data; \
+ _tree_set(tree, treeNode, &tmp); \
}
/**
- * @brief Add a child to current node children.
+ * @brief Append a child to current node.
*/
-void _tree_add_child(
+TreeNode* _tree_add_child(
Tree* tree, ///< "this" pointer.
TreeNode* treeNode, ///< Pointer to a node in the "this" tree.
void* data ///< Pointer to data to be added.
* @param tree "this" pointer.
* @param treeNode Pointer to a node in the "this" tree.
* @param data Data to be added.
+ * @return The newly added tree node.
*
- * Usage: void tree_add_child(Tree* tree, TreeNode* treeNode, void data)
+ * Usage: TreeNode* tree_add_child(Tree* tree, TreeNode* treeNode, void data)
*/
#define tree_add_child(tree,treeNode,data) \
{ \
- typeof((data)) tmp = data; \
- _tree_add_child(tree,treeNode,&tmp); \
+ typeof(data) tmp = data; \
+ _tree_add_child(tree, treeNode, &tmp); \
}
/**
* @brief Add a sibling to current node (after it on the right).
*/
-void _tree_add_sibling(
+TreeNode* _tree_add_sibling(
Tree* tree, ///< "this" pointer.
TreeNode* treeNode, ///< Pointer to a node in the "this" tree.
void* data ///< Pointer to data to be added.
* @param tree "this" pointer.
* @param treeNode Pointer to a node in the "this" tree.
* @param data Data to be added.
+ * @return The newly added tree node.
*
- * Usage: void tree_add_sibling(Tree* tree, TreeNode* treeNode, void data)
+ * Usage: TreeNode* tree_add_sibling(Tree* tree, TreeNode* treeNode, void data)
*/
#define tree_add_sibling(tree, treeNode, data) \
{ \
- typeof((data)) tmp = data; \
+ typeof(data) tmp = data; \
_tree_add_sibling(tree, treeNode, &tmp); \
}