为什么明明case条件成立,却没有进入到case语句里?

创建B树时,为什么明明case条件成立,却没有进入到case语句里?

img


img


完整代码:


```c
 
void CreateBT(BTNode*& b, char* str)
{
    BTNode* p = NULL;
    b = NULL;
    BTNode* St[MaxSize];
    int top = -1;
    int k = 0;
    while (*str != '\0')
    {
        switch (*str)
        {
        case '(':
            top++;
            St[top] = p;
            k = 1;
            break;
        case ')':
            top--;
            break;
        case ',':
            k = 2;
            break;
        default:
            p = (BTNode*)malloc(sizeof(BTNode));
            p->data = *str;
            p->lchild = p->rchild = 0;
            if (b == NULL)
            {
                b = p;
            }
            else
            {
                switch (k)
                {
                case 1:
                    St[top]->lchild;
                    break;
                case 2:
                    St[top]->rchild;
                    break;
                default:
                    break;
                }
            }
            break;
        }
        str++;
    }
}
 

进了只是你的表达式没做啥如赋值等等所以看不出来,你可以在case内加个打印。