/// <summary> /// Внутренний рекурсивный метод поиска. Проходит по списку Position, находящихся после этой. /// Останавливается при обнаружении нужного элемента или по окончании списка. /// </summary> /// <param name="position"> Позиция, в которой ведется поиск. </param> /// <param name="keyedQuery"> Поисковый запрос, содержащий искомый объект. </param> private void Find(Position <V> position, KeyedSearchQuery <K, V> keyedQuery) { if (position == null) { keyedQuery.Count(); return; } if (keyedQuery.Check(position.Element) == 0) { return; } Find(position.Next, keyedQuery); }
public override void Find(int index, KeyedSearchQuery <K, V> keyedQuery) { for (int i = 0; i < _array.Length; i++) { int realIndex = (index + i * _mainFunction.Hash(keyedQuery.SearchKey())) % _array.Length; if (_array[realIndex] == null) { keyedQuery.Count(); return; } if (keyedQuery.Check(_array[realIndex]) == 0 && !_deleted[realIndex]) { return; } } }