Используя очередь или стек, подсчитайте число вершин на n-ом уровне непустого дерева - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите решить 1. Используя очередь или стек, подсчитайте число вершин на n-ом уровне непустого дерева Т (корень считайте вершиной 0-го уровня). В программе используйте подпрограммы. 2. . 3. 4. 5.

Решение задачи: «Используя очередь или стек, подсчитайте число вершин на n-ом уровне непустого дерева»

textual
Листинг программы
typedef struct Tree {
    /*data*/
    struct Tree* left;
    struct Tree* right;
} Tree;
 
unsigned GetNodeCount(const Tree* t, unsigned n) {
    if (!t)
        return 0;
    if (n > 1)
        return GetNodeCount(t->left, n - 1) + GetNodeCount(t->right, n - 1);
    return !!t->left + !!t->right;
}

Объяснение кода листинга программы

В данном коде определена структура дерева (структура Tree), которая содержит две ссылки на поддеревья (left и right). Функция GetNodeCount принимает два параметра: ссылку на узел дерева и число n. Если в качестве параметра передается узел NULL, то функция возвращает 0. Если число n больше 1, то функция рекурсивно вызывает саму себя для левого и правого поддеревьев, а затем возвращает сумму полученных результатов. Если число n равно 1, то функция возвращает 1, если узел имеет дочерние элементы (т.е. left или right не равно NULL), и 0 в противном случае.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы