我正在学习二叉搜索树部分的数据结构。我正在尝试以中序遍历的方式打印二叉树。在我的教科书上,它使用 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/