if 子句可以用作循环吗? (数据结构,C语言)

标签 c if-statement data-structures

我正在学习二叉搜索树部分的数据结构。我正在尝试以中序遍历的方式打印二叉树。在我的教科书上,它使用 if 子句来实现它。但 if 子句不是循环。它是如何工作的?与使用指针root有关吗?

另外,我不明白该函数如何调用自身并且仍然有效。

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

另外,当我在 main 函数上调用它时,我是这样使用的。

displayInorder(root);

而且效果很好! 但我就是不明白这个过程。

最佳答案

该函数不使用循环来显示二叉树。它正在使用递归。您正在从函数内部调用相同的函数“displayInorder”。

关于if 子句可以用作循环吗? (数据结构,C语言),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56415534/

相关文章:

data-structures - 哈希中的高效模糊查找

algorithm - 最多排序 1000 万个 7 位数字。约束 : 1M RAM, 高速。几秒就好

r - 嵌套的 If Else 问题在 Dataframe 中不起作用

java - 替换条件 If 语句

javascript - if else 语句中的多个 if else - 模拟滚动

c++ - 可搜索堆栈

从C调用R函数 "optim"

c - 如何在c中打印特定数据?

C 中的 Connect-N 游戏检查获胜功能不起作用

c - C中十进制到二进制的转换