(栈)括号匹配问题

c语言版

bool cheak(char* str)
{
     Stack stack;
     stack_init(stack);
     for(int i = 0; str[i] != '\0';i++)
     {
        if(str[i] == '(')
            stack_push(stack,'(');
        else if(str[i] == ')')
        {
              if(stack_empty(stack)) return false;  //当栈为空时,字符串为')'时是永远不匹配的,相当于以‘)’开头,返回false
              stack_pop(stack);       
        }
     }
      bool res = stack_empty(stack);
      stack_destory(stack);
      return res;
}

你可能感兴趣的:((栈)括号匹配问题)