Example #1
0
void insert(int j, int i) {
    update_mass(j, i);
    if (nodes_type[j] == NODE_INTERNAL) {
        insert_recursive(j, i);
    } else if (nodes_body[j] > -1) {
        nodes_type[j] = NODE_INTERNAL;
        branch(j);
        insert_recursive(j, nodes_body[j]);
        insert_recursive(j, i);
        nodes_body[j] = -1;
    } else {
        nodes_body[j] = i;
    }
}
Example #2
0
/* 向二叉树插入节点 */
int insert_node(tree *_tree, node *_node)
{
	_node->score = get_score(_node->map);
	_tree->count++;
	/* 调用递归实现方式 */
	return insert_recursive(_tree->root, _node);
}
Example #3
0
    //! @brief Inserts a value.
    //!
    //! Returns true, when the insertion was completely successful.
    //! @param[in] token               Token string by which the value will be
    //!                                found.
    //! @param[in] value               Value, that gets inserted.
    //! @param[in] is_case_insensitive If true, it will insert the token case
    //!                                insensitive.
    //! @return                        True, when the value was inserted
    //!                                successfully or false if not.
    bool insert(const char_t* token, const value_type& value,
                const bool is_case_insensitive)
    {
        bool result = false;
        if ((*token) == '\0') {

            // check if node is not already possessed
            if (!has_value_) {
                has_value_ = true;
                value_ = value;
                result = true;
            }

        } else {
            result = insert_recursive(token, value, is_case_insensitive);
        }

        return result;
    }