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; } }
/* 向二叉树插入节点 */ int insert_node(tree *_tree, node *_node) { _node->score = get_score(_node->map); _tree->count++; /* 调用递归实现方式 */ return insert_recursive(_tree->root, _node); }
//! @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; }