internal static void Remove(QueueElement element, QueuedAVLTree <TKey, TValue> tree, bool callFromQueue = false) { element.next.previous = element.previous; element.previous.next = element.next; if (callFromQueue && element.linkedNode != null) { AVLNode.RemoveNode(element.linkedNode, tree, true); } }
internal static bool FindRemoveItem(AVLNode headNode, object[] HashMap, int hash, KeyValuePair <TKey, TValue> item, ref int elementCount) { int compare = item.Key.CompareTo(headNode.key); while (true) { if (compare < 0) { headNode = headNode.left; if (headNode != null) { compare = item.Key.CompareTo(headNode.key); } else { return(false); } } else if (compare > 0) { headNode = headNode.right; if (headNode != null) { compare = item.Key.CompareTo(headNode.key); } else { return(false); } } else { if (headNode.value.Equals(item.Value)) { AVLNode.RemoveNode(headNode, HashMap, hash, ref elementCount); return(true); } return(false); } } }
internal static bool FindRemoveItem(AVLNode node, QueuedAVLTree <TKey, TValue> tree, KeyValuePair <TKey, TValue> item, ref int elementCount) { int compare = item.Key.CompareTo(node.key); while (true) { if (compare < 0) { node = node.left; if (node != null) { compare = item.Key.CompareTo(node.key); } else { return(false); } } else if (compare > 0) { node = node.right; if (node != null) { compare = item.Key.CompareTo(node.key); } else { return(false); } } else { if (node.value.Equals(item.Value)) { AVLNode.RemoveNode(node, tree); return(true); } return(false); } } }
internal static bool FindRemoveKey(AVLNode headNode, object[] HashMap, int hash, TKey key, ref int elementCount) { int compare = key.CompareTo(headNode.key); while (true) { if (compare < 0) { headNode = headNode.left; if (headNode != null) { compare = key.CompareTo(headNode.key); } else { return(false); } } else if (compare > 0) { headNode = headNode.right; if (headNode != null) { compare = key.CompareTo(headNode.key); } else { return(false); } } else { AVLNode.RemoveNode(headNode, HashMap, hash, ref elementCount); return(true); } } }
internal static bool FindRemoveKey(AVLNode node, QueuedAVLTree <TKey, TValue> tree, TKey key, ref int elementCount) { int compare = key.CompareTo(node.key); while (true) { if (compare < 0) { node = node.left; if (node != null) { compare = key.CompareTo(node.key); } else { return(false); } } else if (compare > 0) { node = node.right; if (node != null) { compare = key.CompareTo(node.key); } else { return(false); } } else { AVLNode.RemoveNode(node, tree); return(true); } } }