protected void insert_data(binary_node <int> node, binary_search_node insert, binary_node <int> base_node) { if (node == null) { if (base_node.data > insert.data) { base_node.left = insert; return; } else { base_node.right = insert; return; } } else { if (node.data > insert.data) { insert_data(node.left, insert, node); } else if (node.data < insert.data) { insert_data(node.right, insert, node); } } return; }
public override void insert(int data) { binary_search_node temp = new binary_search_node(data); insert_data(root, temp, null); Splaying(temp); }
public override void insert(int data) { binary_search_node temp = new binary_search_node(data); temp.Colors = binary_node <int> .Colour.red; insert_data(root, temp, null); check_conditions(temp); }
void post_order_to_tree_convert(int[] postorder) { root = new binary_tree <int> .binary_node <int>(postorder[0]); foreach (int i in postorder) { if (i == postorder[0]) { continue; } binary_search_node temp = new binary_search_node(i); insert_data(root, temp, null); } }
void top_down_splay(int data) { binary_node <int> temp = new binary_search_node(data); List <binary_node <int> > path_node = path(temp); Splaying(path_node[path_node.Count - 1]); if (root.left == null) { root = root.right; return; } temp = root.right; root = root.left; Splaying(max_value(root)); root.right = temp; }
void bottom_up_splay(int data) { binary_search_node temp = new binary_search_node(data); int temp_data = root.data; List <binary_node <int> > path_node = path(temp); base.remove(data); if (temp.data == temp_data) { return; } if (temp.data == path_node[path_node.Count - 1].data) { Splaying(path_node[path_node.Count - 2]); } else { Splaying(path_node[path_node.Count - 1]); } }
public virtual void insert(int data) { binary_search_node temp = new binary_search_node(data); insert_data(root, temp, null); }
public binary_search_tree(int root_data) { root = new binary_search_node(root_data); }