<div style="text-align: left;"><span style="line-height: 1.5;"></span></div>
<div style="text-align: left;"><span style="line-height: 1.5;">int main()</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">Stack *s;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">initStack(&s);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">int len;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">char ch, che;</span></div><div style="text-align: left;">
</div><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">printf("输入一段带括号的文段(以#最为结束标志):\n");</span></div><div style="text-align: left;"><span style="line-height: 1.5;">scanf("%c", &ch);</span></div><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">while (ch != '#')</span></div><p style="line-height: 30px; text-indent: 2em;"></p><p style="line-height: 30px; text-indent: 2em;"></p><p style="line-height: 30px; text-indent: 2em;"></p><p style="line-height: 30px; text-indent: 2em;"></p><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">lenStack(s, &len);</span></div><div style="text-align: left;">
</div><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">switch (ch)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '(':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '[':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '{':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '<':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case ')':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">popStack(s, &che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (che != '(')</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case ']':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">popStack(s, &che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (che != '[')</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '}':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">popStack(s, &che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (che != '{')</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '\'':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">popStack(s, &che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (che != '\'')</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '"':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">popStack(s, &che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (che != '"')</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">case '>':</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">popStack(s, &che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (che != '<')</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, che);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">pushStack(s, ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">break;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">scanf("%c", &ch);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">lenStack(s, &len);</span></div><div style="text-align: left;"><span style="line-height: 1.5;">if (!len)</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">printf("括号完全匹配!\n");</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;"><span style="line-height: 1.5;">else</span></div><div style="text-align: left;"><span style="line-height: 1.5;">{</span></div><div style="text-align: left;"><span style="line-height: 1.5;">printf("括号不匹配!\n");</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div><div style="text-align: left;">
</div><div style="text-align: left;"><span style="line-height: 1.5;">return 0;</span></div><div style="text-align: left;"><span style="line-height: 1.5;">}</span></div>
|