Вопрос 14: Получение ДДП с автобалансировкой из упорядоченного массива

/* Функция, которая строит сбалансированное двоичное дерево поиска из отсортированного массива */
struct node* sortedArrayToBST(int arr[], int start, int end)
{
    if (start > end)
      return NULL;

    /* Получить средний элемент и сделать его root */
    int mid = (start + end)/2;
    struct node *root = newNode(arr[mid]);

    /* Рекурсивно построить левое поддерево */
    root->left =  sortedArrayToBST(arr, start, mid-1);

    /* рекурсивно построить правое поддерево */
    root->right = sortedArrayToBST(arr, mid+1, end);

    return root;
}

results matching ""

    No results matching ""