Можно ли использовать условие if в качестве цикла?(DataStructure, C Language) - PullRequest
0 голосов
/ 02 июня 2019

Я изучаю DataStructure в части дерева двоичного поиска. Я пытаюсь распечатать бинарное дерево способом обхода по порядку. В моем учебнике он использует условие if для его реализации. Но условие if - это не цикл. Как это работает? Это связано с использованием указателя корня?

Кроме того, я не понимаю, как функция вызывает себя и все еще работает.

void displayInorder (treeNode *root){
    if(root) {
        displayInorder(root->left);
        printf("%c", root->key);
        displayInorder(root->right);
    }

Кроме того, когда я вызывал ее в основной функции, я использовал ее следующим образом.

displayInorder (корень);

И это прекрасно работает! Но я просто не понимаю этот процесс.

1 Ответ

0 голосов
/ 02 июня 2019

Функция не использует цикл для отображения двоичного дерева.Это использует рекурсию.Вы вызываете ту же функцию "displayInorder" изнутри функции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...