Lines Matching refs:TreeNode
276 struct TreeNode { struct
279 TreeNode *m_left, *m_right; argument
281 TreeNode(size_t range_begin, size_t range_end, size_t affinity, in TreeNode() argument
282 TreeNode* left, TreeNode* right) in TreeNode()
286 friend TreeNode* make_node(size_t range_begin, size_t range_end, size_t affinity,
287 TreeNode *left, TreeNode *right);
290 TreeNode* make_node(size_t range_begin, size_t range_end, size_t affinity,
291 TreeNode* left = nullptr, TreeNode* right = nullptr) {
293 return new TreeNode(range_begin, range_end, affinity, left, right);
308 void push_node(TreeNode* node) { in push_node()
329 void fill_leafs(std::vector<TreeNode*>& leafs) const { fill_leafs_impl(m_root, leafs); } in fill_leafs()
332 TreeNode *m_root;
334 void push_subnode(TreeNode *&root_node, TreeNode *node) { in push_subnode()
372 bool has_children(TreeNode *node) { return node->m_left || node->m_right; } in has_children()
374 bool is_look_like_left_sibling(TreeNode *root_node, TreeNode *node) { in is_look_like_left_sibling()
381 bool has_left_child(TreeNode *node) { return node->m_left != nullptr; } in has_left_child()
383 bool is_subnode(TreeNode *root_node, TreeNode *node) { in is_subnode()
388 bool are_nodes_equal(TreeNode *node1, TreeNode *node2) const { in are_nodes_equal()
393 void remove_node_recursively(TreeNode *node) { in remove_node_recursively()
401 static void visualize_node(const TreeNode* node, unsigned indent = 0) {
417 bool compare_nodes(TreeNode* node1, TreeNode* node2) const { in compare_nodes()
424 void fill_leafs_impl(TreeNode* node, std::vector<TreeNode*>& leafs) const { in fill_leafs_impl()