예제 #1
0
            /// <summary>
            /// Находит и возвращает первый узел который содержит искомое значение.
            /// Если значение не найдено, возвращает null.
            /// Так же возвращает родительский узел.
            /// </summary> ///
            /// <param name="value">Значение поиска</param>
            /// <param name="parent">Родительский элемент для найденного значения/// </param>
            /// <returns> Найденный узел (или ноль) /// </returns>

            private AVLTreeNode <T> Find(T value)
            {
                AVLTreeNode <T> current = Head; // помещаем текущий элемент в корень дерева

                // Пока текщий узел на пустой
                while (current != null)
                {
                    int result = current.CompareTo(value); // сравнение значения текущего элемента с искомым значением

                    if (result > 0)
                    {
                        // Если значение меньшне текущего - переход влево
                        current = current.Left;
                    }
                    else if (result < 0)
                    {
                        // Если значение больше текщего - переход вправо
                        current = current.Right;
                    }
                    else
                    {
                        // Элемент найден
                        break;
                    }
                }
                return(current);
            }
예제 #2
0
        private AVLTreeNode <T> Find(T value)
        {
            AVLTreeNode <T> current = Head; // помещаем текущий элемент в корень дерева

            while (current != null)
            {
                int result = current.CompareTo(value);

                if (result > 0)
                {
                    current = current.Left;
                }
                else if (result < 0)
                {
                    current = current.Right;
                }
                else
                {
                    break;
                }
            }
            return(current);
        }