Beispiel #1
0
        /// <summary>
        /// Внутренний рекурсивный метод, для поиска элемента.
        /// </summary>
        /// <param name="position"> Ячейка для проверки. </param>
        /// <param name="query"> Поисковый запрос. </param>
        private void Find(Position <T> position, SearchQuery <T> query)
        {
            if (position == null)
            {
                query.Count();
                return;
            }

            int cmp = query.Check(position.Element);

            if (cmp == 0)
            {
                return;
            }
            if (cmp > 0)
            {
                Find(position.LeftChild, query);
            }
            if (cmp < 0)
            {
                Find(position.RightChild, query);
            }

            Find(position.CenterChild, query);
        }