用C语言如何实现判断圆括号是否配对?

如题所述

第1个回答  2022-12-11
如果只有圆括号(没有[ ] 或 { }),不需要构造一个栈。因为用栈实现时,栈里装的都是一模一样的左括号 '(,因此我们只需定义一个 整型变量 来记录 栈中元素的个数 即可。具体代码如下:\x0d\x0a\x0d\x0a#include \x0d\x0a\x0d\x0aint main (void)\x0d\x0a{\x0d\x0a char input = 0; \x0d\x0a int num = 0; /* 不用栈,只记录栈中元素的个数,初始化为0 */\x0d\x0a\x0d\x0a while (1 == scanf ("%c", &input)) /* 读入字符串,每次读一个字符存入 input 中 */\x0d\x0a {\x0d\x0a if ('(== input)\x0d\x0a {\x0d\x0a ++num; /* 相当于把左括号压栈 */\x0d\x0a }\x0d\x0a if (')== input)\x0d\x0a {\x0d\x0a --num; /* 相当于遇到右括号时弹栈 */\x0d\x0a }\x0d\x0a if (0 > num)\x0d\x0a {\x0d\x0a printf ("括号不匹配\n");\x0d\x0a return 0;\x0d\x0a }\x0d\x0a }\x0d\x0a\x0d\x0a if (0 == num) /* 读完字符串后判断“栈”是否为空 */\x0d\x0a {\x0d\x0a printf ("括号匹配\n");\x0d\x0a }\x0d\x0a else\x0d\x0a {\x0d\x0a printf ("括号不匹配\n");\x0d\x0a }\x0d\x0a\x0d\x0a return 0;\x0d\x0a}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网