静态变量没有增加

仇恨之友

我遇到了在 BST 中找到第K 个最小元素的问题

我写的函数是:

//THE FUNCTION TAKES ROOT OF TREE AND THE VALUE OF K AS INPUT
int KthSmallestElement(Node *root, int k)
{
    static int indicator=0;
    static Node* temp_root=NULL;
    static int count=0;           //PROBLEM
    int i=0;

    if(indicator==0)
    {
        indicator=0;
        temp_root=root;
    }
    if(root)
    {
        i=KthSmallestElement(root->left,k);
        if(i!=0)
        {
            indicator=0;
            temp_root=NULL;
            count=0;
            return i;
         }

         ++count;      
         printf("count %d k %d\n",count,k);
         printf("root.data %d\n\n",root->data);

         if(count==k)
         {
            return root->data;
         }
         i=KthSmallestElement(root->right,k);
         if(i!=0)
         {
             indicator=0;
             count=0;
             temp_root=NULL;
             return i;
         }

     }
     if(temp_root==root)
     {
         indicator=0;
         count=0;
         temp_root=NULL;
     }
     return 0;
}

我必须提供的输入类型是:

输入:

1              //NO OF TEST CASES
11             //NO OF NODES IN THE BST
962 29 643 291 8 298 133 481 175 916 948  //VALUE OF NODES IN BST
6                //VALUE OF K

输出:

count 1 k 6
root.data 8

count 1 k 6
root.data 29

count 1 k 6
root.data 133

count 1 k 6
root.data 175

依此类推,按升序打印所有剩余值。现在我真的很困惑为什么count的值没有增加。当控制语句在交叉计数递增操作后到达时,为什么它无法递增值?编译器是 g++ 5.4

高拉夫

您的代码中有一个似乎是无意的错误。设置indicator0以外的某个值

if(indicator==0)
{
     //indicator=0; // MISTAKE
     indicator=1     //OR SOME VALUE OTHER THAN 0
     .
     .
     .
 }

之后count将按预期工作

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为什么Java静态变量没有更新?

来自分类Dev

没有参数和静态变量的递归

来自分类Dev

静态变量更改值,没有错误显示?

来自分类Dev

通过静态函数增加非静态变量

来自分类Dev

来自命名空间的静态变量不会增加

来自分类Dev

多线程编程和增加静态变量

来自分类Dev

对于c ++中的单个静态变量,有没有比类更好的选择?

来自分类Dev

Java中的对象通信,没有带有getter和setter的静态变量

来自分类Dev

Swift:为什么没有dynamicType的非静态方法不能调用静态变量和常量(静态let)?

来自分类Dev

Swift:为什么没有dynamicType的非静态方法不能调用静态变量和常量(静态let)?

来自分类Dev

结构中的私有静态变量

来自分类Dev

带有静态变量的NullPointerException

来自分类Dev

带有静态变量的NullPointerException

来自分类Dev

为什么没有将静态变量分配给static方法返回的值?

来自分类Dev

在没有全局或静态变量的情况下配置Bison和Flex

来自分类Dev

没有静态变量的等同于Excel Sumif()函数的Cognos

来自分类Dev

如何在没有静态变量的情况下使简单的递归函数正常工作

来自分类Dev

当存储该引用的局部变量设置为null时,为什么静态变量没有设置为null?

来自分类Dev

Javascript静态变量

来自分类Dev

灰烬静态变量

来自分类Dev

Delphi静态变量

来自分类Dev

更改静态变量

来自分类Dev

更改静态变量

来自分类Dev

静态变量与循环

来自分类Dev

灰烬静态变量

来自分类Dev

替代静态变量

来自分类Dev

同步静态变量

来自分类Dev

进行静态变量

来自分类Dev

没有状态变量的动作