public void LockUnlock(int val, bool lockUnlock, LockTree root) { if (root == null) { return; } LockTree tree = root.FindNodeBST(val); if (tree != null) { if (lockUnlock) { if (tree.Lock()) { Console.WriteLine("Node {0} locked!", val); } else { Console.WriteLine("Node {0} could not be locked!", val); } } else { if (tree.Unlock()) { Console.WriteLine("Node {0} unlocked!", val); } else { Console.WriteLine("Node {0} could not be unlocked!", val); } } } }
public LockTree BuildTree() { LockTree tree = new LockTree(10, null); tree.left = new LockTree(5, tree); tree.right = new LockTree(15, tree); tree.left.left = new LockTree(2, tree.left); tree.left.right = new LockTree(8, tree.left); tree.right.left = new LockTree(12, tree.right); tree.right.right = new LockTree(20, tree.right); tree.right.right.left = new LockTree(18, tree.right.right); tree.right.right.right = new LockTree(22, tree.right.right); return(tree); }
public LockTree(int val, LockTree parent) { this.val = val; this.parent = parent; }