﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-Young往之前</title><link>http://www.cppblog.com/YoungXie/</link><description>随波逐流</description><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:09:05 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:09:05 GMT</pubDate><ttl>60</ttl><item><title>知易行难！</title><link>http://www.cppblog.com/YoungXie/archive/2012/10/13/193248.html</link><dc:creator>YoungXie</dc:creator><author>YoungXie</author><pubDate>Sat, 13 Oct 2012 10:23:00 GMT</pubDate><guid>http://www.cppblog.com/YoungXie/archive/2012/10/13/193248.html</guid><wfw:comment>http://www.cppblog.com/YoungXie/comments/193248.html</wfw:comment><comments>http://www.cppblog.com/YoungXie/archive/2012/10/13/193248.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/YoungXie/comments/commentRss/193248.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YoungXie/services/trackbacks/193248.html</trackback:ping><description><![CDATA[<div><font style="background-color: #c7edcb">男人更注重的是内心的强大！内心强大了，他就会清楚的知道自己的缺陷是什么，从而靠不断的积极主动的心态武装自己的思想；武装好强大的思想后再去通过坚韧的执行力去实现自己目标，梦想。但，知易行难！这个时候就得靠习惯来支撑了，虽然行难，但是必须坚持；坚定的以&#8220;知&#8221;为指导。所以为什么说习惯可以成就一个人也可以摧毁一个人！</font></div><img src ="http://www.cppblog.com/YoungXie/aggbug/193248.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YoungXie/" target="_blank">YoungXie</a> 2012-10-13 18:23 <a href="http://www.cppblog.com/YoungXie/archive/2012/10/13/193248.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++之实现括号匹配的校验</title><link>http://www.cppblog.com/YoungXie/archive/2012/04/17/171784.html</link><dc:creator>YoungXie</dc:creator><author>YoungXie</author><pubDate>Tue, 17 Apr 2012 14:15:00 GMT</pubDate><guid>http://www.cppblog.com/YoungXie/archive/2012/04/17/171784.html</guid><wfw:comment>http://www.cppblog.com/YoungXie/comments/171784.html</wfw:comment><comments>http://www.cppblog.com/YoungXie/archive/2012/04/17/171784.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/YoungXie/comments/commentRss/171784.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/YoungXie/services/trackbacks/171784.html</trackback:ping><description><![CDATA[<div>头文件： 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;1</span>&nbsp;<span style="color: #008000">/*</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;2</span>&nbsp;<span style="color: #008000">输入一个表达式，如果有表达式中有括号，判断该括号是否匹配<br /></span><span style="color: #008080">&nbsp;3</span>&nbsp;<span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;4</span>&nbsp;<span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;5</span>&nbsp;<span style="color: #008000"></span><span style="color: #008000">*/</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;6</span>&nbsp;<span style="color: #000000">#include&nbsp;</span><span style="color: #000000">&lt;</span><span style="color: #000000">iostream</span><span style="color: #000000">&gt;</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;7</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">using</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">namespace</span><span style="color: #000000">&nbsp;std;<br /></span><span style="color: #008080">&nbsp;8</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;9</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">10</span>&nbsp;<span style="color: #000000">typedef&nbsp;unsigned&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;UINT;<br /></span><span style="color: #008080">11</span>&nbsp;<span style="color: #000000">typedef&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;CHAR;<br /></span><span style="color: #008080">12</span>&nbsp;<span style="color: #000000">typedef&nbsp;unsigned&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">&nbsp;UICHAR;<br /></span><span style="color: #008080">13</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">14</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;LEFTCIRCLEBRACKET&nbsp;&nbsp;&nbsp;&nbsp;'('</span><span style="color: #000000"><br /></span><span style="color: #008080">15</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;RIGHTCIRCLEBRACKET&nbsp;&nbsp;&nbsp;&nbsp;')'</span><span style="color: #000000"><br /></span><span style="color: #008080">16</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;LEFTSQUABRACKET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'['</span><span style="color: #000000"><br /></span><span style="color: #008080">17</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">#define</span><span style="color: #000000">&nbsp;RIGHTSQUABRACKET&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;']'</span><span style="color: #000000"><br /></span><span style="color: #008080">18</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">19</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">20</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">栈的元素</span><span style="color: #008000"><br /></span><span style="color: #008080">21</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">typedef&nbsp;</span><span style="color: #0000ff">struct</span><span style="color: #000000">&nbsp;stacknode<br /></span><span style="color: #008080">22</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">23</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CHAR&nbsp;chstackData;<br /></span><span style="color: #008080">24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">struct</span><span style="color: #000000">&nbsp;stacknode</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;pnext;<br /></span><span style="color: #008080">25</span>&nbsp;<span style="color: #000000">}STACKNODE;<br /></span><span style="color: #008080">26</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">27</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">28</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">定义一个栈类</span><span style="color: #008000"><br /></span><span style="color: #008080">29</span>&nbsp;<span style="color: #008000"></span><span style="color: #0000ff">class</span><span style="color: #000000">&nbsp;cBracketMatchStack<br /></span><span style="color: #008080">30</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">31</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">public</span><span style="color: #000000">:<br /></span><span style="color: #008080">32</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cBracketMatchStack();<br /></span><span style="color: #008080">33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">~</span><span style="color: #000000">cBracketMatchStack();<br /></span><span style="color: #008080">34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;Init(CHAR</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;cTmpPre,&nbsp;UINT&nbsp;uiTmpLength);<br /></span><span style="color: #008080">35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;close();<br /></span><span style="color: #008080">36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;processMatch();<br /></span><span style="color: #008080">37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;pushStackNode(CHAR&nbsp;chstacknodeValue);</span><span style="color: #008000">//</span><span style="color: #008000">入栈</span><span style="color: #008000"><br /></span><span style="color: #008080">38</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;popStackNode();</span><span style="color: #008000">//</span><span style="color: #008000">出栈</span><span style="color: #008000"><br /></span><span style="color: #008080">39</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;createNode();<br /></span><span style="color: #008080">40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">private</span><span style="color: #000000">:<br /></span><span style="color: #008080">41</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">UINT&nbsp;m_uiStackLength;</span><span style="color: #008000">//</span><span style="color: #008000">栈的长度</span><span style="color: #008000"><br /></span><span style="color: #008080">42</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STACKNODE</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;m_sntop;</span><span style="color: #008000">//</span><span style="color: #008000">永远指向栈顶元素，当为空时为NULL</span><span style="color: #008000"><br /></span><span style="color: #008080">43</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CHAR</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;m_pStrPre;<br /></span><span style="color: #008080">44</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;m_bFirstisWrong;<br /></span><span style="color: #008080">45</span>&nbsp;<span style="color: #000000">};<br /></span><span style="color: #008080">46</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">47</span>&nbsp;<span style="color: #000000"></span></div><br />实现文件 
<div style="border-bottom: #cccccc 1px solid; border-left: #cccccc 1px solid; padding-bottom: 4px; background-color: #eeeeee; padding-left: 4px; width: 98%; padding-right: 5px; font-size: 13px; word-break: break-all; border-top: #cccccc 1px solid; border-right: #cccccc 1px solid; padding-top: 4px"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080">&nbsp;&nbsp;1</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;&nbsp;2</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;&nbsp;3</span>&nbsp;<span style="color: #000000">#include&nbsp;</span><span style="color: #000000">"</span><span style="color: #000000">cBracketMatchStack.h</span><span style="color: #000000">"</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;&nbsp;4</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;&nbsp;5</span>&nbsp;<span style="color: #000000">cBracketMatchStack::cBracketMatchStack()<br /></span><span style="color: #008080">&nbsp;&nbsp;6</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;&nbsp;7</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;&nbsp;8</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_pStrPre&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;&nbsp;9</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_bFirstisWrong&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;10</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">&nbsp;11</span>&nbsp;<span style="color: #000000">cBracketMatchStack::</span><span style="color: #000000">~</span><span style="color: #000000">cBracketMatchStack()<br /></span><span style="color: #008080">&nbsp;12</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;13</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;close();<br /></span><span style="color: #008080">&nbsp;14</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">&nbsp;15</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;cBracketMatchStack::close()<br /></span><span style="color: #008080">&nbsp;16</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;17</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;m_sntop)<br /></span><span style="color: #008080">&nbsp;18</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;19</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STACKNODE</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;sTmpNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">pnext;<br /></span><span style="color: #008080">&nbsp;20</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;m_sntop;<br /></span><span style="color: #008080">&nbsp;21</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;22</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;sTmpNode;<br /></span><span style="color: #008080">&nbsp;23</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;24</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;m_pStrPre)<br /></span><span style="color: #008080">&nbsp;25</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;26</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;[]m_pStrPre;<br /></span><span style="color: #008080">&nbsp;27</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_pStrPre&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;28</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br /></span><span style="color: #008080">&nbsp;29</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">&nbsp;30</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">输入一个表达式，和该表达式的长度</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;31</span>&nbsp;<span style="color: #008000"></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;cBracketMatchStack::Init(CHAR</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;cTmpPre,&nbsp;UINT&nbsp;uiTmpLength)<br /></span><span style="color: #008080">&nbsp;32</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;33</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;34</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_pStrPre&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">char</span><span style="color: #000000">[uiTmpLength</span><span style="color: #000000">+</span><span style="color: #000000">1</span><span style="color: #000000">];<br /></span><span style="color: #008080">&nbsp;35</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;m_pStrPre)<br /></span><span style="color: #008080">&nbsp;36</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;37</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">malloc&nbsp;memory&nbsp;is&nbsp;failured.</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /></span><span style="color: #008080">&nbsp;38</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;39</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;40</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">拷贝需要匹配表达式的输入字符串</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;41</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;strncpy(m_pStrPre,&nbsp;cTmpPre,&nbsp;uiTmpLength);<br /></span><span style="color: #008080">&nbsp;42</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;m_pStrPre[uiTmpLength]&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">'</span><span style="color: #000000">\0</span><span style="color: #000000">'</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;43</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">cout&lt;&lt;"the&nbsp;input&nbsp;character&nbsp;is:"&lt;&lt;m_pStrPre&lt;&lt;endl;</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;44</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;45</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">&nbsp;46</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">&nbsp;47</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">开始处理匹配过程</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;48</span>&nbsp;<span style="color: #008000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;cBracketMatchStack::processMatch()<br /></span><span style="color: #008080">&nbsp;49</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;50</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;CHAR</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;cTmp&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m_pStrPre;<br /></span><span style="color: #008080">&nbsp;51</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;52</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">while</span><span style="color: #000000">&nbsp;((NULL&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;cTmp)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(</span><span style="color: #000000">'</span><span style="color: #000000">\0</span><span style="color: #000000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">cTmp))<br /></span><span style="color: #008080">&nbsp;53</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;54</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">char&nbsp;ccTmp&nbsp;=&nbsp;*cTmp;</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;55</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((LEFTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">cTmp)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;(RIGHTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">cTmp)&nbsp;<br /></span><span style="color: #008080">&nbsp;56</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;(LEFTSQUABRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">cTmp)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;(RIGHTSQUABRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">*</span><span style="color: #000000">cTmp))<br /></span><span style="color: #008080">&nbsp;57</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;58</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pushStackNode(</span><span style="color: #000000">*</span><span style="color: #000000">cTmp);<br /></span><span style="color: #008080">&nbsp;59</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;60</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">指向下一个字符</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;61</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #000000">++</span><span style="color: #000000">cTmp;<br /></span><span style="color: #008080">&nbsp;62</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;63</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">走到这就表示整个表达式已经入栈完毕了，并且在入栈的过程中也已经进行了表达式的匹配工作<br /></span><span style="color: #008080">&nbsp;64</span>&nbsp;<span style="color: #008000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">表达式的匹配的最终结果是该栈是为空栈，否则该表达式为不匹配</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;65</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((NULL&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;m_sntop)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(</span><span style="color: #0000ff">false</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;m_bFirstisWrong))<br /></span><span style="color: #008080">&nbsp;66</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;67</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">This&nbsp;expression&nbsp;is&nbsp;valid.</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /></span><span style="color: #008080">&nbsp;68</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;69</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;70</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;71</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">This&nbsp;expression&nbsp;is&nbsp;not&nbsp;valid.</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /></span><span style="color: #008080">&nbsp;72</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;73</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;close();<br /></span><span style="color: #008080">&nbsp;74</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">&nbsp;75</span>&nbsp;<span style="color: #000000"></span><span style="color: #0000ff">void</span><span style="color: #000000">&nbsp;cBracketMatchStack::createNode()<br /></span><span style="color: #008080">&nbsp;76</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">&nbsp;77</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;STACKNODE</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;pTmpNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;78</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;pTmpNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">new</span><span style="color: #000000">&nbsp;STACKNODE;<br /></span><span style="color: #008080">&nbsp;79</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;pTmpNode)<br /></span><span style="color: #008080">&nbsp;80</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;81</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">malloc&nbsp;memory&nbsp;is&nbsp;failured.</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /></span><span style="color: #008080">&nbsp;82</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(</span><span style="color: #000000">-</span><span style="color: #000000">1</span><span style="color: #000000">);<br /></span><span style="color: #008080">&nbsp;83</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;84</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;85</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;86</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">非空栈</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;87</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;m_sntop)<br /></span><span style="color: #008080">&nbsp;88</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;89</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pTmpNode</span><span style="color: #000000">-&gt;</span><span style="color: #000000">pnext&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m_sntop;<br /></span><span style="color: #008080">&nbsp;90</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pTmpNode;<br /></span><span style="color: #008080">&nbsp;91</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;92</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">&nbsp;93</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">&nbsp;94</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">空栈</span><span style="color: #008000"><br /></span><span style="color: #008080">&nbsp;95</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pTmpNode;<br /></span><span style="color: #008080">&nbsp;96</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">pnext&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;NULL;<br /></span><span style="color: #008080">&nbsp;97</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">&nbsp;98</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">&nbsp;99</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">100</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">101</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">元素入栈</span><span style="color: #008000"><br /></span><span style="color: #008080">102</span>&nbsp;<span style="color: #008000"></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;cBracketMatchStack::pushStackNode(CHAR&nbsp;chstacknodeValue)<br /></span><span style="color: #008080">103</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">104</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">bool&nbsp;bTmpPushRst&nbsp;=&nbsp;false;</span><span style="color: #008000"><br /></span><span style="color: #008080">105</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000"><br /></span><span style="color: #008080">106</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;m_sntop)<br /></span><span style="color: #008080">107</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">108</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">首次进入的就是']'或')'，直接返回错误</span><span style="color: #008000"><br /></span><span style="color: #008080">109</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((RIGHTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;chstacknodeValue)&nbsp;</span><span style="color: #000000">||</span><span style="color: #000000">&nbsp;(RIGHTSQUABRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;chstacknodeValue))<br /></span><span style="color: #008080">110</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">111</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_bFirstisWrong&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">112</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">113</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">114</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createNode();<br /></span><span style="color: #008080">115</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">chstackData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;chstacknodeValue;<br /></span><span style="color: #008080">116</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">117</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">118</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">119</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">输入的是')'，但是当前栈顶存储的不是'('，则该表达式不匹配。</span><span style="color: #008000"><br /></span><span style="color: #008080">120</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((RIGHTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;chstacknodeValue)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(LEFTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">chstackData))<br /></span><span style="color: #008080">121</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">122</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">123</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">124</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((RIGHTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;chstacknodeValue)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(LEFTCIRCLEBRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">chstackData))<br /></span><span style="color: #008080">125</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">126</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">匹配成功，POP栈顶元素</span><span style="color: #008000"><br /></span><span style="color: #008080">127</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;popStackNode();<br /></span><span style="color: #008080">128</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">129</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">130</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">输入的是']',但是当前栈顶存储的不是'['，则该表达式不匹配</span><span style="color: #008000"><br /></span><span style="color: #008080">131</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((RIGHTSQUABRACKET</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;chstacknodeValue)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(LEFTSQUABRACKET&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">chstackData))<br /></span><span style="color: #008080">132</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">133</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">134</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">135</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;((RIGHTSQUABRACKET</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;chstacknodeValue)&nbsp;</span><span style="color: #000000">&amp;&amp;</span><span style="color: #000000">&nbsp;(LEFTSQUABRACKET&nbsp;</span><span style="color: #000000">==</span><span style="color: #000000">&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">chstackData))<br /></span><span style="color: #008080">136</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">137</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">匹配成功，POP栈顶元素</span><span style="color: #008000"><br /></span><span style="color: #008080">138</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;popStackNode();<br /></span><span style="color: #008080">139</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">140</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">141</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">142</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008000">//</span><span style="color: #008000">剩下的就是'('或'['</span><span style="color: #008000"><br /></span><span style="color: #008080">143</span>&nbsp;<span style="color: #008000"></span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;createNode();<br /></span><span style="color: #008080">144</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">chstackData&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;chstacknodeValue;&nbsp;<br /></span><span style="color: #008080">145</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">146</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">147</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">148</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">149</span>&nbsp;<span style="color: #000000"></span><span style="color: #008000">//</span><span style="color: #008000">出栈</span><span style="color: #008000"><br /></span><span style="color: #008080">150</span>&nbsp;<span style="color: #008000"></span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;cBracketMatchStack::popStackNode()<br /></span><span style="color: #008080">151</span>&nbsp;<span style="color: #000000">{<br /></span><span style="color: #008080">152</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">bool</span><span style="color: #000000">&nbsp;bTmpPopRst&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">false</span><span style="color: #000000">;<br /></span><span style="color: #008080">153</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;<br /></span><span style="color: #008080">154</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;(NULL&nbsp;</span><span style="color: #000000">!=</span><span style="color: #000000">&nbsp;m_sntop)<br /></span><span style="color: #008080">155</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">156</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;STACKNODE</span><span style="color: #000000">*</span><span style="color: #000000">&nbsp;pTmpNode&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;m_sntop</span><span style="color: #000000">-&gt;</span><span style="color: #000000">pnext;<br /></span><span style="color: #008080">157</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete&nbsp;m_sntop;<br /></span><span style="color: #008080">158</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sntop&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;pTmpNode;<br /></span><span style="color: #008080">159</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bTmpPopRst&nbsp;</span><span style="color: #000000">=</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">true</span><span style="color: #000000">;<br /></span><span style="color: #008080">160</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">161</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000"><br /></span><span style="color: #008080">162</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;{<br /></span><span style="color: #008080">163</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /></span><span style="color: #008080">164</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">"</span><span style="color: #000000">there&nbsp;is&nbsp;no&nbsp;element&nbsp;in&nbsp;this&nbsp;stack.</span><span style="color: #000000">"</span><span style="color: #000000">&lt;&lt;</span><span style="color: #000000">endl;<br /></span><span style="color: #008080">165</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;}<br /></span><span style="color: #008080">166</span>&nbsp;<span style="color: #000000"><br /></span><span style="color: #008080">167</span>&nbsp;<span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">return</span><span style="color: #000000">&nbsp;bTmpPopRst;<br /></span><span style="color: #008080">168</span>&nbsp;<span style="color: #000000">}<br /></span><span style="color: #008080">169</span>&nbsp;<span style="color: #000000"></span></div><br /></div><img src ="http://www.cppblog.com/YoungXie/aggbug/171784.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/YoungXie/" target="_blank">YoungXie</a> 2012-04-17 22:15 <a href="http://www.cppblog.com/YoungXie/archive/2012/04/17/171784.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>