yure1333 2013-10-03 03:41 采纳率: 0%
浏览 2117

C语言二叉树中一个二级指针函数问题

static BSTREE_NODE** find(int data, BSTREE_NODE** root){
39 if(! *root) return root;
40 else if(data == (*root)->data) return root;
41 else if(data < (*root)->data)
42 return find(data,&(*root)->left);
43 else return find(data,&(*root)->right);
44 }

如果该二级指针函数改成一级指针函数好像不影响结果吧?这里只要传递出搜索结果的地址就可以了
改成如下一级指针的函数

static BSTREE_NODE* find(int data, BSTREE_NODE* root){
39 if( !root ) return root;
40 else if(data == root->data) return root;
41 else if(data < root->data)
42 return find(data, root->left);
43 else return find(data,root->right);
44 }

  • 写回答

1条回答 默认 最新

  • 寧靜以致遠 2013-12-23 03:19
    关注

    您好,针对您上述的情况,改成一级指针是可以的。
    用一个指针指向根结点,而在进行find操作时没有修改该树,只是进行查找,找到就返回到到结点的地址,所以用一级指针是可行的。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考