﻿<?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++博客-panther</title><link>http://www.cppblog.com/panther/</link><description /><language>zh-cn</language><lastBuildDate>Tue, 14 Apr 2026 23:10:01 GMT</lastBuildDate><pubDate>Tue, 14 Apr 2026 23:10:01 GMT</pubDate><ttl>60</ttl><item><title>vim 替换操作大全</title><link>http://www.cppblog.com/panther/archive/2012/11/14/195204.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Wed, 14 Nov 2012 13:50:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2012/11/14/195204.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/195204.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2012/11/14/195204.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/195204.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/195204.html</trackback:ping><description><![CDATA[<span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">vi/vim 中可以使用 :s 命令来替换字符串,例如：</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s/vivian/sky/ 替换当前行第一个 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s/vivian/sky/g 替换当前行所有 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:2,$s/vivian/sky/g 替换第 2 行开始到最后一行中每一行所有 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">n 为数字，若 n 为 .，表示从当前行开始到最后一行</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:%s/vivian/sky/（等同于 :g/vivian/s//sky/） 替换每一行的第一个 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:%s/vivian/sky/g（等同于 :g/vivian/s//sky/g） 替换每一行中所有 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">可以使用 # 作为分隔符，此时中间出现的 / 不会作为分隔符</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:%s+/oradata/apras/+/user01/apras1+ （使用+ 来 替换 / ）： /oradata/apras/替换成/user01/apras1/</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s/vivian/sky/g 替换当前行所有 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">2. :n,$s/vivian/sky/ 替换第 n 行开始到最后一行中每一行的第一个 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:n,$s/vivian/sky/g 替换第 n 行开始到最后一行中每一行所有 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">(n 为数字，若 n 为 .，表示从当前行开始到最后一行)</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">3. :%s/vivian/sky/（等同于 :g/vivian/s//sky/） 替换每一行的第一个 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:%s/vivian/sky/g（等同于 :g/vivian/s//sky/g） 替换每一行中所有 vivian 为 sky</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">4. 可以使用 # 作为分隔符，此时中间出现的 / 不会作为分隔符</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s#vivian/#sky/# 替换当前行第一个 vivian/ 为 sky/</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">5. 删除文本中的^M</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">问题描述：对于换行,window下用回车换行(0A0D)来表示，Linux下是回车(0A)来表示。这样，将window上的文件拷到Unix上用时，总会有个^M.请写个用在unix下的过滤windows文件的换行符(0D)的shell或c程序。</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; 使用命令：cat filename1 | tr -d "^V^M" &gt; newfile；</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; 使用命令：sed -e "s/^V^M//" filename &gt; outputfilename。需要注意的是在1、2两种方法中，^V和^M指的是Ctrl+V和Ctrl+M。你必须要手工进行输入，而不是粘贴。</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; 在vi中处理：首先使用vi打开文件，然后按ESC键，接着输入命令：%s/^V^M//。</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; :%s/^M$//g</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">如果上述方法无用，则正确的解决办法是：</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; tr -d "\r" &lt; src &gt;dest</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; tr -d "\015" dest</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">&#183; strings A&gt;B</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">6. 其它</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">利用 :s 命令可以实现字符串的替换。具体的用法包括：</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s/str1/str2/ 用字符串 str2 替换行中首次出现的字符串 str1</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:s/str1/str2/g 用字符串 str2 替换行中所有出现的字符串 str1</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:.,$ s/str1/str2/g 用字符串 str2 替换正文当前行到末尾所有出现的字符串 str1</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:1,$ s/str1/str2/g 用字符串 str2 替换正文中所有出现的字符串 str1</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">:g/str1/s//str2/g 功能同上</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">从上述替换命令可以看到：g 放在命令末尾，表示对搜索字符串的每次出现进行替换；不加 g，表示只对搜索</span><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><br style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;" /><span style="color: #454545; font-family: tahoma, helvetica, arial; background-color: #ffffff;">字符串的首次出现进行替换；g 放在命令开头，表示对正文中所有包含搜索字符串的行进行替换操作。</span><img src ="http://www.cppblog.com/panther/aggbug/195204.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2012-11-14 21:50 <a href="http://www.cppblog.com/panther/archive/2012/11/14/195204.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>建议待续</title><link>http://www.cppblog.com/panther/archive/2011/07/26/151830.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Mon, 25 Jul 2011 16:34:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2011/07/26/151830.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/151830.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2011/07/26/151830.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/151830.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/151830.html</trackback:ping><description><![CDATA[1.禁止ci无用的代码、资源、注释到svn中，保持代码库整洁。（这一点非常重要，此类ci在项目后期会使团队付出巨大的代价，成为产品维护、项目重构的重大阻力）<br /><br />2.确保做到每次ci涉及的物理修改不超过一个逻辑功能点<br /><br />3.做某个明确的功能点时，确保完成100%的工作，并以此做工作量评估， 设计时适当考虑扩展性，禁止在代码中采用&#8220;取巧手段&#8221;完成 可预见的、确定需求的 90%，剩余的10%将极大降低团队中其他成员的工作效率。<img src ="http://www.cppblog.com/panther/aggbug/151830.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2011-07-26 00:34 <a href="http://www.cppblog.com/panther/archive/2011/07/26/151830.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>以四节为步长 计算字符串长度</title><link>http://www.cppblog.com/panther/archive/2011/03/14/141751.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Sun, 13 Mar 2011 16:07:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2011/03/14/141751.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/141751.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2011/03/14/141751.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/141751.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/141751.html</trackback:ping><description><![CDATA[<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"><span style="COLOR: #008080">&nbsp;1</span><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #008000">//</span><span style="COLOR: #008000">以步长为4求字符串长度<br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #008000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">由于此程序段涉及到了对地址的解引用，所以必须确保包含'\0'的四字节内存属性标记至少包含可读</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #008000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #000000">size_t&nbsp;strlen(</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">str)&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img id=Codehighlighter1_97_508_Open_Image onclick="this.style.display='none'; Codehighlighter1_97_508_Open_Text.style.display='none'; Codehighlighter1_97_508_Closed_Image.style.display='inline'; Codehighlighter1_97_508_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_97_508_Closed_Image onclick="this.style.display='none'; Codehighlighter1_97_508_Closed_Text.style.display='none'; Codehighlighter1_97_508_Open_Image.style.display='inline'; Codehighlighter1_97_508_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_97_508_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_97_508_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;v;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">const</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;str;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;((unsigned)p&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">))&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;&nbsp;<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;(size_t)(p&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;str);&nbsp;&nbsp;<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">每次递增4，直到找到包含'\0'的那四个字节</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #008000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(v&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">v;&nbsp;p&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">)&nbsp;&nbsp;<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img id=Codehighlighter1_285_378_Open_Image onclick="this.style.display='none'; Codehighlighter1_285_378_Open_Text.style.display='none'; Codehighlighter1_285_378_Closed_Image.style.display='inline'; Codehighlighter1_285_378_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_285_378_Closed_Image onclick="this.style.display='none'; Codehighlighter1_285_378_Closed_Text.style.display='none'; Codehighlighter1_285_378_Open_Image.style.display='inline'; Codehighlighter1_285_378_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_285_378_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_285_378_Open_Text><span style="COLOR: #000000">{&nbsp;&nbsp;<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">(unsigned</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)p&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x01010101</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0x80808080</span><span style="COLOR: #000000">;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(v)&nbsp;&nbsp;<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;</span><span style="COLOR: #000000">&amp;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">~*</span><span style="COLOR: #000000">(unsigned</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">)p;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000">&nbsp;&nbsp;<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">计算包含'\0'的那个四个字节中'\0'前有几个字符</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">19</span><span style="COLOR: #008000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(;&nbsp;(v&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0xff</span><span style="COLOR: #000000">)&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;p&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">)&nbsp;&nbsp;<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;v&nbsp;</span><span style="COLOR: #000000">&gt;&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">8</span><span style="COLOR: #000000">;&nbsp;&nbsp;<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;(size_t)(p&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;str&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">);&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">&nbsp;&nbsp;&nbsp;&nbsp;去除掉最后一个'p+=4'</span><span style="COLOR: #008000"><br></span><span style="COLOR: #008080">22</span><span style="COLOR: #008000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif"></span><span style="COLOR: #000000">}</span></span><span style="COLOR: #000000">&nbsp;<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span></div>
<img src ="http://www.cppblog.com/panther/aggbug/141751.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2011-03-14 00:07 <a href="http://www.cppblog.com/panther/archive/2011/03/14/141751.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ZZ 统计字符串中所有子串是对称串的个数</title><link>http://www.cppblog.com/panther/archive/2010/05/10/114980.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Mon, 10 May 2010 03:02:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/05/10/114980.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/114980.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/05/10/114980.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/114980.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/114980.html</trackback:ping><description><![CDATA[<a href="http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2744">http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2744</a><br><br>
<div><font size=3>比如：输入字符串aba，其一维子串a，b，a都是对称串，它本身也是对称的，所以其输出为4。<br>不难看出所有对称串可以分为3类：
<div><font size=3>I)单个字符组成的对称串，比如a，b，c<br>II)偶数长度的对称串，比如aa，abba<br>III)奇数长度的对称串，即：除中间位置的字符可以出现奇数次，两边的字符必须成对出现，比如aca，abcba<br><br>其实情况I)是情况III)的特殊形式，由于我们可以直接获得输入串的长度，故把情况I)单独拿出来就不必计算了</font></div>
</font></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"><span style="COLOR: #008080">&nbsp;1</span><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">string.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">iostream</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></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;7</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">#if</span><span style="COLOR: #000000">&nbsp;0</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">typedef&nbsp;unsigned&nbsp;__int64&nbsp;uint64;<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">#else</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">typedef&nbsp;unsigned&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">long</span><span style="COLOR: #000000">&nbsp;uint64;<br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">#endif</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;buf[</span><span style="COLOR: #000000">5001</span><span style="COLOR: #000000">];<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">uint64&nbsp;cnt()<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img id=Codehighlighter1_220_592_Open_Image onclick="this.style.display='none'; Codehighlighter1_220_592_Open_Text.style.display='none'; Codehighlighter1_220_592_Closed_Image.style.display='inline'; Codehighlighter1_220_592_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_220_592_Closed_Image onclick="this.style.display='none'; Codehighlighter1_220_592_Closed_Text.style.display='none'; Codehighlighter1_220_592_Open_Image.style.display='inline'; Codehighlighter1_220_592_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_220_592_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_220_592_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;uint64&nbsp;ret&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;size_t&nbsp;len&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;strlen(buf);<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;ret&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;len;<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">len</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img id=Codehighlighter1_313_426_Open_Image onclick="this.style.display='none'; Codehighlighter1_313_426_Open_Text.style.display='none'; Codehighlighter1_313_426_Closed_Image.style.display='inline'; Codehighlighter1_313_426_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_313_426_Closed_Image onclick="this.style.display='none'; Codehighlighter1_313_426_Closed_Text.style.display='none'; Codehighlighter1_313_426_Open_Image.style.display='inline'; Codehighlighter1_313_426_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_313_426_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_313_426_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;k&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i;<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(k&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;len</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;buf[k]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;buf[j])<br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img id=Codehighlighter1_397_423_Open_Image onclick="this.style.display='none'; Codehighlighter1_397_423_Open_Text.style.display='none'; Codehighlighter1_397_423_Closed_Image.style.display='inline'; Codehighlighter1_397_423_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_397_423_Closed_Image onclick="this.style.display='none'; Codehighlighter1_397_423_Closed_Text.style.display='none'; Codehighlighter1_397_423_Open_Image.style.display='inline'; Codehighlighter1_397_423_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_397_423_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_397_423_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">ret;<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">k,</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j;<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">for</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;i&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">len</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">i)<br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img id=Codehighlighter1_462_577_Open_Image onclick="this.style.display='none'; Codehighlighter1_462_577_Open_Text.style.display='none'; Codehighlighter1_462_577_Closed_Image.style.display='inline'; Codehighlighter1_462_577_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_462_577_Closed_Image onclick="this.style.display='none'; Codehighlighter1_462_577_Closed_Text.style.display='none'; Codehighlighter1_462_577_Open_Image.style.display='inline'; Codehighlighter1_462_577_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_462_577_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_462_577_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">,&nbsp;<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;i&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(k&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;j&nbsp;</span><span style="COLOR: #000000">&lt;=</span><span style="COLOR: #000000">&nbsp;len</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;&amp;</span><span style="COLOR: #000000">&nbsp;buf[k]&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;buf[j])<br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img id=Codehighlighter1_548_574_Open_Image onclick="this.style.display='none'; Codehighlighter1_548_574_Open_Text.style.display='none'; Codehighlighter1_548_574_Closed_Image.style.display='inline'; Codehighlighter1_548_574_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_548_574_Closed_Image onclick="this.style.display='none'; Codehighlighter1_548_574_Closed_Text.style.display='none'; Codehighlighter1_548_574_Open_Image.style.display='inline'; Codehighlighter1_548_574_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_548_574_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_548_574_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">ret;<br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #000000">--</span><span style="COLOR: #000000">k,</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">j;<br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;ret;<br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img id=Codehighlighter1_606_671_Open_Image onclick="this.style.display='none'; Codehighlighter1_606_671_Open_Text.style.display='none'; Codehighlighter1_606_671_Closed_Image.style.display='inline'; Codehighlighter1_606_671_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_606_671_Closed_Image onclick="this.style.display='none'; Codehighlighter1_606_671_Closed_Text.style.display='none'; Codehighlighter1_606_671_Open_Image.style.display='inline'; Codehighlighter1_606_671_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_606_671_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_606_671_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(cin&nbsp;</span><span style="COLOR: #000000">&gt;&gt;</span><span style="COLOR: #000000">&nbsp;buf)<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img id=Codehighlighter1_630_658_Open_Image onclick="this.style.display='none'; Codehighlighter1_630_658_Open_Text.style.display='none'; Codehighlighter1_630_658_Closed_Image.style.display='inline'; Codehighlighter1_630_658_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_630_658_Closed_Image onclick="this.style.display='none'; Codehighlighter1_630_658_Closed_Text.style.display='none'; Codehighlighter1_630_658_Open_Image.style.display='inline'; Codehighlighter1_630_658_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_630_658_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_630_658_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cout&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;cnt()&nbsp;</span><span style="COLOR: #000000">&lt;&lt;</span><span style="COLOR: #000000">&nbsp;endl;<br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span></div>
<img src ="http://www.cppblog.com/panther/aggbug/114980.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-05-10 11:02 <a href="http://www.cppblog.com/panther/archive/2010/05/10/114980.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单链表反转以及反向打印</title><link>http://www.cppblog.com/panther/archive/2010/05/10/114976.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Mon, 10 May 2010 02:39:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/05/10/114976.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/114976.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/05/10/114976.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/114976.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/114976.html</trackback:ping><description><![CDATA[<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"><span style="COLOR: #008080">&nbsp;1</span><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;2</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">&nbsp;3</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">&nbsp;4</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">typedef<br></span><span style="COLOR: #008080">&nbsp;5</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;Node<br></span><span style="COLOR: #008080">&nbsp;6</span><span style="COLOR: #000000"><img id=Codehighlighter1_60_84_Open_Image onclick="this.style.display='none'; Codehighlighter1_60_84_Open_Text.style.display='none'; Codehighlighter1_60_84_Closed_Image.style.display='inline'; Codehighlighter1_60_84_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_60_84_Closed_Image onclick="this.style.display='none'; Codehighlighter1_60_84_Closed_Text.style.display='none'; Codehighlighter1_60_84_Open_Image.style.display='inline'; Codehighlighter1_60_84_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_60_84_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_60_84_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">&nbsp;7</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;data;<br></span><span style="COLOR: #008080">&nbsp;8</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">Node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;next;<br></span><span style="COLOR: #008080">&nbsp;9</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000">Node;<br></span><span style="COLOR: #008080">10</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">11</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">12</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">Node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;reverse_list(Node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;header)<br></span><span style="COLOR: #008080">13</span><span style="COLOR: #000000"><img id=Codehighlighter1_126_285_Open_Image onclick="this.style.display='none'; Codehighlighter1_126_285_Open_Text.style.display='none'; Codehighlighter1_126_285_Closed_Image.style.display='inline'; Codehighlighter1_126_285_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_126_285_Closed_Image onclick="this.style.display='none'; Codehighlighter1_126_285_Closed_Text.style.display='none'; Codehighlighter1_126_285_Open_Image.style.display='inline'; Codehighlighter1_126_285_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_126_285_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_126_285_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">14</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p,&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">q,&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">r;<br></span><span style="COLOR: #008080">15</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;q&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">16</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">17</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;q&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;header;<br></span><span style="COLOR: #008080">18</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">(q)<br></span><span style="COLOR: #008080">19</span><span style="COLOR: #000000"><img id=Codehighlighter1_184_202_Open_Image onclick="this.style.display='none'; Codehighlighter1_184_202_Open_Text.style.display='none'; Codehighlighter1_184_202_Closed_Image.style.display='inline'; Codehighlighter1_184_202_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_184_202_Closed_Image onclick="this.style.display='none'; Codehighlighter1_184_202_Closed_Text.style.display='none'; Codehighlighter1_184_202_Open_Image.style.display='inline'; Codehighlighter1_184_202_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_184_202_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_184_202_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">20</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;q</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">next;<br></span><span style="COLOR: #008080">21</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">22</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">23</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(q)<br></span><span style="COLOR: #008080">24</span><span style="COLOR: #000000"><img id=Codehighlighter1_217_272_Open_Image onclick="this.style.display='none'; Codehighlighter1_217_272_Open_Text.style.display='none'; Codehighlighter1_217_272_Closed_Image.style.display='inline'; Codehighlighter1_217_272_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_217_272_Closed_Image onclick="this.style.display='none'; Codehighlighter1_217_272_Closed_Text.style.display='none'; Codehighlighter1_217_272_Open_Image.style.display='inline'; Codehighlighter1_217_272_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_217_272_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_217_272_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">25</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">next&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;p;<br></span><span style="COLOR: #008080">26</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;q;<br></span><span style="COLOR: #008080">27</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;q&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r;<br></span><span style="COLOR: #008080">28</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;r&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r</span><span style="COLOR: #000000">?</span><span style="COLOR: #000000">r</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">next:</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">29</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">30</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;p;<br></span><span style="COLOR: #008080">31</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">32</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">33</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;reverse_print(Node</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;header)<br></span><span style="COLOR: #008080">34</span><span style="COLOR: #000000"><img id=Codehighlighter1_321_405_Open_Image onclick="this.style.display='none'; Codehighlighter1_321_405_Open_Text.style.display='none'; Codehighlighter1_321_405_Closed_Image.style.display='inline'; Codehighlighter1_321_405_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_321_405_Closed_Image onclick="this.style.display='none'; Codehighlighter1_321_405_Closed_Text.style.display='none'; Codehighlighter1_321_405_Open_Image.style.display='inline'; Codehighlighter1_321_405_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_321_405_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_321_405_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">35</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(header)<br></span><span style="COLOR: #008080">36</span><span style="COLOR: #000000"><img id=Codehighlighter1_337_403_Open_Image onclick="this.style.display='none'; Codehighlighter1_337_403_Open_Text.style.display='none'; Codehighlighter1_337_403_Closed_Image.style.display='inline'; Codehighlighter1_337_403_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_337_403_Closed_Image onclick="this.style.display='none'; Codehighlighter1_337_403_Closed_Text.style.display='none'; Codehighlighter1_337_403_Open_Image.style.display='inline'; Codehighlighter1_337_403_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_337_403_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_337_403_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">37</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reverse_print(header</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">next);<br></span><span style="COLOR: #008080">38</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,header</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">data);<br></span><span style="COLOR: #008080">39</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">40</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br></span><span style="COLOR: #008080">41</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br></span><span style="COLOR: #008080">42</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br></span><span style="COLOR: #008080">43</span><span style="COLOR: #000000"><img id=Codehighlighter1_419_628_Open_Image onclick="this.style.display='none'; Codehighlighter1_419_628_Open_Text.style.display='none'; Codehighlighter1_419_628_Closed_Image.style.display='inline'; Codehighlighter1_419_628_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_419_628_Closed_Image onclick="this.style.display='none'; Codehighlighter1_419_628_Closed_Text.style.display='none'; Codehighlighter1_419_628_Open_Image.style.display='inline'; Codehighlighter1_419_628_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_419_628_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_419_628_Open_Text><span style="COLOR: #000000">{<br></span><span style="COLOR: #008080">44</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;Node&nbsp;n1,&nbsp;n2,n3;<br></span><span style="COLOR: #008080">45</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n1.data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">46</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n1.next&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n2;<br></span><span style="COLOR: #008080">47</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">48</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n2.data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">49</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n2.next&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n3;<br></span><span style="COLOR: #008080">50</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">51</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n3.data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">52</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;n3.next&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">53</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br></span><span style="COLOR: #008080">54</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;reverse_print(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n1);<br></span><span style="COLOR: #008080">55</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">================\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br></span><span style="COLOR: #008080">56</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;reverse_print(reverse_list(</span><span style="COLOR: #000000">&amp;</span><span style="COLOR: #000000">n1));<br></span><span style="COLOR: #008080">57</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br></span><span style="COLOR: #008080">58</span><span style="COLOR: #000000"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span></div>
<img src ="http://www.cppblog.com/panther/aggbug/114976.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-05-10 10:39 <a href="http://www.cppblog.com/panther/archive/2010/05/10/114976.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Send Message between Processes (ZZ from windows kernel programming)</title><link>http://www.cppblog.com/panther/archive/2010/05/08/114888.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Sat, 08 May 2010 15:30:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/05/08/114888.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/114888.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/05/08/114888.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/114888.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/114888.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: Sending &nbsp; Data &nbsp; with &nbsp; Messages &nbsp; &nbsp; In &nbsp; this &nbsp; section, &nbsp; we'll &nbsp; examine &nbsp; how &nbsp; the &nbsp; system &nbsp; transfers &nbsp; data &nbsp; between...&nbsp;&nbsp;<a href='http://www.cppblog.com/panther/archive/2010/05/08/114888.html'>阅读全文</a><img src ="http://www.cppblog.com/panther/aggbug/114888.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-05-08 23:30 <a href="http://www.cppblog.com/panther/archive/2010/05/08/114888.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>将给定的数转化为长度固定的字符串，注意负数和小数</title><link>http://www.cppblog.com/panther/archive/2010/05/07/114769.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Fri, 07 May 2010 08:58:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/05/07/114769.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/114769.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/05/07/114769.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/114769.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/114769.html</trackback:ping><description><![CDATA[<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"><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><span style="COLOR: #000000">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">typedef&nbsp;__int64&nbsp;int64;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif">template</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">typename&nbsp;T</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;tran(</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;dest[],&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;len,&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;maxL,&nbsp;T&nbsp;src)<br><img id=Codehighlighter1_135_819_Open_Image onclick="this.style.display='none'; Codehighlighter1_135_819_Open_Text.style.display='none'; Codehighlighter1_135_819_Closed_Image.style.display='inline'; Codehighlighter1_135_819_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_135_819_Closed_Image onclick="this.style.display='none'; Codehighlighter1_135_819_Closed_Text.style.display='none'; Codehighlighter1_135_819_Open_Image.style.display='inline'; Codehighlighter1_135_819_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_135_819_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_135_819_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(len&nbsp;</span><span style="COLOR: #000000">+</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;maxL)<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;r&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(src&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_197_233_Open_Image onclick="this.style.display='none'; Codehighlighter1_197_233_Open_Text.style.display='none'; Codehighlighter1_197_233_Closed_Image.style.display='inline'; Codehighlighter1_197_233_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_197_233_Closed_Image onclick="this.style.display='none'; Codehighlighter1_197_233_Closed_Text.style.display='none'; Codehighlighter1_197_233_Open_Image.style.display='inline'; Codehighlighter1_197_233_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_197_233_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_197_233_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[r</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">-</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;src&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">src;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #008000">//</span><span style="COLOR: #008000">src&nbsp;&gt;=0;</span><span style="COLOR: #008000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"></span><span style="COLOR: #000000">&nbsp;&nbsp;&nbsp;&nbsp;T&nbsp;diff&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;src&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">&nbsp;(int64)src;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;int64&nbsp;iSrc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(int64)src;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;int64&nbsp;mod&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(iSrc&nbsp;</span><span style="COLOR: #000000">&gt;=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_339_369_Open_Image onclick="this.style.display='none'; Codehighlighter1_339_369_Open_Text.style.display='none'; Codehighlighter1_339_369_Closed_Image.style.display='inline'; Codehighlighter1_339_369_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_339_369_Closed_Image onclick="this.style.display='none'; Codehighlighter1_339_369_Closed_Text.style.display='none'; Codehighlighter1_339_369_Open_Image.style.display='inline'; Codehighlighter1_339_369_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_339_369_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_339_369_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSrc&nbsp;</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mod&nbsp;</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSrc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(int64)src;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">bool</span><span style="COLOR: #000000">&nbsp;bDot&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">false</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(&nbsp;r&nbsp;</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">&nbsp;len)<br><img id=Codehighlighter1_433_803_Open_Image onclick="this.style.display='none'; Codehighlighter1_433_803_Open_Text.style.display='none'; Codehighlighter1_433_803_Closed_Image.style.display='inline'; Codehighlighter1_433_803_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_433_803_Closed_Image onclick="this.style.display='none'; Codehighlighter1_433_803_Closed_Text.style.display='none'; Codehighlighter1_433_803_Open_Image.style.display='inline'; Codehighlighter1_433_803_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_433_803_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_433_803_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;c&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><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;c&nbsp;</span><span style="COLOR: #000000">+=</span><span style="COLOR: #000000">&nbsp;iSrc&nbsp;</span><span style="COLOR: #000000">/</span><span style="COLOR: #000000">mod&nbsp;</span><span style="COLOR: #000000">%</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[r</span><span style="COLOR: #000000">++</span><span style="COLOR: #000000">]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;c;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(mod&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_510_771_Open_Image onclick="this.style.display='none'; Codehighlighter1_510_771_Open_Text.style.display='none'; Codehighlighter1_510_771_Closed_Image.style.display='inline'; Codehighlighter1_510_771_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_510_771_Closed_Image onclick="this.style.display='none'; Codehighlighter1_510_771_Closed_Text.style.display='none'; Codehighlighter1_510_771_Open_Image.style.display='inline'; Codehighlighter1_510_771_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_510_771_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_510_771_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(diff&nbsp;</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)&nbsp;<br><img id=Codehighlighter1_533_666_Open_Image onclick="this.style.display='none'; Codehighlighter1_533_666_Open_Text.style.display='none'; Codehighlighter1_533_666_Closed_Image.style.display='inline'; Codehighlighter1_533_666_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_533_666_Closed_Image onclick="this.style.display='none'; Codehighlighter1_533_666_Closed_Text.style.display='none'; Codehighlighter1_533_666_Open_Image.style.display='inline'; Codehighlighter1_533_666_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_533_666_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_533_666_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">bDot)<br><img id=Codehighlighter1_554_601_Open_Image onclick="this.style.display='none'; Codehighlighter1_554_601_Open_Text.style.display='none'; Codehighlighter1_554_601_Closed_Image.style.display='inline'; Codehighlighter1_554_601_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_554_601_Closed_Image onclick="this.style.display='none'; Codehighlighter1_554_601_Closed_Text.style.display='none'; Codehighlighter1_554_601_Open_Image.style.display='inline'; Codehighlighter1_554_601_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_554_601_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_554_601_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[r</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">.</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bDot&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">bDot;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff&nbsp;</span><span style="COLOR: #000000">*=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSrc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;(__int64)diff;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;diff&nbsp;</span><span style="COLOR: #000000">-=</span><span style="COLOR: #000000">&nbsp;iSrc;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_679_767_Open_Image onclick="this.style.display='none'; Codehighlighter1_679_767_Open_Text.style.display='none'; Codehighlighter1_679_767_Closed_Image.style.display='inline'; Codehighlighter1_679_767_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_679_767_Closed_Image onclick="this.style.display='none'; Codehighlighter1_679_767_Closed_Text.style.display='none'; Codehighlighter1_679_767_Open_Image.style.display='inline'; Codehighlighter1_679_767_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_679_767_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_679_767_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">bDot)<br><img id=Codehighlighter1_700_747_Open_Image onclick="this.style.display='none'; Codehighlighter1_700_747_Open_Text.style.display='none'; Codehighlighter1_700_747_Closed_Image.style.display='inline'; Codehighlighter1_700_747_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_700_747_Closed_Image onclick="this.style.display='none'; Codehighlighter1_700_747_Closed_Text.style.display='none'; Codehighlighter1_700_747_Open_Image.style.display='inline'; Codehighlighter1_700_747_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_700_747_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_700_747_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dest[r</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">.</span><span style="COLOR: #000000">'</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bDot&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">bDot;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;iSrc&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">else</span><span style="COLOR: #000000"><br><img id=Codehighlighter1_782_800_Open_Image onclick="this.style.display='none'; Codehighlighter1_782_800_Open_Text.style.display='none'; Codehighlighter1_782_800_Closed_Image.style.display='inline'; Codehighlighter1_782_800_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_782_800_Closed_Image onclick="this.style.display='none'; Codehighlighter1_782_800_Closed_Text.style.display='none'; Codehighlighter1_782_800_Open_Image.style.display='inline'; Codehighlighter1_782_800_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_782_800_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_782_800_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mod&nbsp;</span><span style="COLOR: #000000">/=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">10</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif">&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;dest[r]&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span><span style="COLOR: #000000"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"><br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/None.gif"></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_833_935_Open_Image onclick="this.style.display='none'; Codehighlighter1_833_935_Open_Text.style.display='none'; Codehighlighter1_833_935_Closed_Image.style.display='inline'; Codehighlighter1_833_935_Closed_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif"><img style="DISPLAY: none" id=Codehighlighter1_833_935_Closed_Image onclick="this.style.display='none'; Codehighlighter1_833_935_Closed_Text.style.display='none'; Codehighlighter1_833_935_Open_Image.style.display='inline'; Codehighlighter1_833_935_Open_Text.style.display='inline';" align=top src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif"></span><span style="BORDER-BOTTOM: #808080 1px solid; BORDER-LEFT: #808080 1px solid; BACKGROUND-COLOR: #ffffff; DISPLAY: none; BORDER-TOP: #808080 1px solid; BORDER-RIGHT: #808080 1px solid" id=Codehighlighter1_833_935_Closed_Text><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_833_935_Open_Text><span style="COLOR: #000000">{<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">double</span><span style="COLOR: #000000">&nbsp;a&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">-</span><span style="COLOR: #000000">0.54360</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">char</span><span style="COLOR: #000000">&nbsp;dest[</span><span style="COLOR: #000000">1000</span><span style="COLOR: #000000">];<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;tran(dest,&nbsp;</span><span style="COLOR: #000000">20</span><span style="COLOR: #000000">,&nbsp;</span><span style="COLOR: #000000">999</span><span style="COLOR: #000000">,&nbsp;a);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%s\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;dest);<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img align=top src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif">}</span></span></div>
<img src ="http://www.cppblog.com/panther/aggbug/114769.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-05-07 16:58 <a href="http://www.cppblog.com/panther/archive/2010/05/07/114769.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 求 0~ n 中 0~9 的出现的次数 O(lgn)</title><link>http://www.cppblog.com/panther/archive/2010/05/06/114682.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Thu, 06 May 2010 09:24:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/05/06/114682.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/114682.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/05/06/114682.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/114682.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/114682.html</trackback:ping><description><![CDATA[<font color=#0000ff size=2><font color=#0000ff size=2>
<p>#include</font></font><font size=2> </font><font color=#a31515 size=2><font color=#a31515 size=2>"stdio.h"</p>
</font></font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>#include</font></font><font size=2> </font><font color=#a31515 size=2><font color=#a31515 size=2>"stdlib.h"</p>
</font></font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>#include</font></font><font size=2> </font><font color=#a31515 size=2><font color=#a31515 size=2>"string.h"</p>
</font></font>
<p><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> cnt[10] = {1};</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>void</font></font><font size=2> count(</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> n)</p>
<p>{</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>while</font></font><font size=2> (n)</p>
<p>{</p>
<p>cnt[n%10]++;</p>
<p>n = n /10;</p>
<p>}</p>
<p>}</p>
<p>&#160;</p>
</font><font color=#008000 size=2><font color=#008000 size=2>
<p>/**</p>
<p>num &gt;= 0 &amp;&amp; num &lt;= 9;</p>
<p>*/</p>
</font></font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>int</font></font><font size=2> count2(</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> src, </font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> num)</p>
<p>{</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>char</font></font><font size=2> str[100] = {0};</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>char</font></font><font size=2> tmpstr[100] = {0};</p>
<p>sprintf(str,</font><font color=#a31515 size=2><font color=#a31515 size=2>"%d"</font></font><font size=2>, src);</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> len = strlen(str);</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> ret = len-1;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> tmp = len - 2;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>while</font></font><font size=2> (tmp &gt;= 1)</p>
<p>{</p>
<p>ret *= 10;</p>
<p>tmp--;</p>
<p>}</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> (!num)</p>
<p>{</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> total = 10;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> ( len &lt; 2)</p>
<p>{</p>
<p>total = 0;</p>
<p>}</p>
<p>tmp = 9;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> ( </font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> k = 3; k &lt;= len; ++k)</p>
<p>{</p>
<p>tmp *= 10;</p>
<p>total += tmp * (k-1);</p>
<p>}</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> (total)</p>
<p>{</p>
<p>ret = total - 9 * ret;</p>
<p>}</p>
<p>}</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> t = 0;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> t0, t1;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> (</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> i = 0; i &lt; len; ++i)</p>
<p>{</p>
<p>t0 = 0;</p>
<p>t1 = 0;</p>
<p>t = 1;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> (</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> k = 0; k &lt; i; ++k)</p>
<p>{</p>
<p>t0 = t0*10 + str[k]-</font><font color=#a31515 size=2><font color=#a31515 size=2>'0'</font></font><font size=2>;</p>
<p>t *= 10;</p>
<p>}</p>
<p>t /= 10;</p>
<p>t0 -= t;</p>
<p>t0 += 1;</p>
<p>t = 0;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> (</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> k = i +1; k &lt; len; ++k)</p>
<p>t1 = t1*10 + str[k]-</font><font color=#a31515 size=2><font color=#a31515 size=2>'0'</font></font><font size=2>;</p>
<p>t1 += 1;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> (str[i]-</font><font color=#a31515 size=2><font color=#a31515 size=2>'0'</font></font><font size=2>&gt;num)</p>
<p>{</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> (!i &amp;&amp; !num &amp;&amp; len &gt; 1) t0 = 0;</p>
<p>t1 = 0;</p>
<p>}</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>else</font></font><font size=2> </font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> (str[i]-</font><font color=#a31515 size=2><font color=#a31515 size=2>'0'</font></font><font size=2>==num)</p>
<p>{</p>
<p>t0--;</p>
<p>}</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>else</p>
</font></font><font size=2>
<p>{</p>
<p>t0--;</p>
<p>t1 = 0;</p>
<p>}</p>
<p>&#160;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> (</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> k = i+1; k &lt; len; ++k)</p>
<p>t0 *= 10;</p>
<p>&#160;</p>
<p>ret += t0 + t1;</p>
<p>}</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>return</font></font><font size=2> ret;</p>
<p>}</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>int</font></font><font size=2> main()</p>
<p>{</p>
<p>&#160;</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>int</font></font><font size=2> o_o = 1;</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>while</font></font><font size=2> (o_o &lt;= 10000)</p>
<p>{</p>
<p>memset(cnt, 0 , </font><font color=#0000ff size=2><font color=#0000ff size=2>sizeof</font></font><font size=2> cnt);</p>
<p>cnt[0] = 1;</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> (</font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> i =0 ;i &lt;= o_o; ++i)</p>
<p>count(i);</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>for</font></font><font size=2> ( </font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> i = 0; i &lt;= 9; ++i)</p>
<p>{</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> n1 = cnt[i];</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>int</font></font><font size=2> n2 = count2(o_o, i);</p>
<p></font><font color=#0000ff size=2><font color=#0000ff size=2>if</font></font><font size=2> (n1- n2)</p>
<p>{</p>
<p>printf(</font><font color=#a31515 size=2><font color=#a31515 size=2>" o_o = %d , a[%d] = %d, %d\n"</font></font><font size=2>,o_o, i, n1,n2 );</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>goto</font></font><font size=2> _exit;</p>
<p>}</p>
<p>}</p>
<p>&#160;</p>
<p>++o_o;</p>
<p>}</p>
<p>_exit:;</p>
</font><font color=#0000ff size=2><font color=#0000ff size=2>
<p>return</font></font><font size=2> 0;</p>
<p>}</p>
</font>
<img src ="http://www.cppblog.com/panther/aggbug/114682.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-05-06 17:24 <a href="http://www.cppblog.com/panther/archive/2010/05/06/114682.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>树遍历 非递归 + 栈</title><link>http://www.cppblog.com/panther/archive/2010/04/28/113915.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Wed, 28 Apr 2010 15:54:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/04/28/113915.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/113915.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/04/28/113915.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/113915.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/113915.html</trackback:ping><description><![CDATA[<p>&nbsp;</p>
<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee"><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdafx.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">windows.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdio.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stdlib.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">signal.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">process.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">malloc.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">fstream</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">list</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">vector</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">algorithm</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">time.h</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">queue</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>#include&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">stack</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></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><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top>typedef&nbsp;</span><span style="COLOR: #0000ff">struct</span><span style="COLOR: #000000">&nbsp;TNode<br><img id=Codehighlighter1_336_424_Open_Image onclick="this.style.display='none'; Codehighlighter1_336_424_Open_Text.style.display='none'; Codehighlighter1_336_424_Closed_Image.style.display='inline'; Codehighlighter1_336_424_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_336_424_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_336_424_Closed_Text.style.display='none'; Codehighlighter1_336_424_Open_Image.style.display='inline'; Codehighlighter1_336_424_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_336_424_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_336_424_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">left,&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">right;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;data;<br><img id=Codehighlighter1_384_422_Open_Image onclick="this.style.display='none'; Codehighlighter1_384_422_Open_Text.style.display='none'; Codehighlighter1_384_422_Closed_Image.style.display='inline'; Codehighlighter1_384_422_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_384_422_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_384_422_Closed_Text.style.display='none'; Codehighlighter1_384_422_Open_Image.style.display='inline'; Codehighlighter1_384_422_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode(</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;d)</span><span id=Codehighlighter1_384_422_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_384_422_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;left&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;right&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;NULL;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;d;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000">&nbsp;TNode;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;inorderTrave(TNode</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;root)<br><img id=Codehighlighter1_465_706_Open_Image onclick="this.style.display='none'; Codehighlighter1_465_706_Open_Text.style.display='none'; Codehighlighter1_465_706_Closed_Image.style.display='inline'; Codehighlighter1_465_706_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_465_706_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_465_706_Closed_Text.style.display='none'; Codehighlighter1_465_706_Open_Image.style.display='inline'; Codehighlighter1_465_706_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_465_706_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_465_706_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;stack</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">TNode</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">&nbsp;st;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;st.push(root);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">st.empty())<br><img id=Codehighlighter1_540_704_Open_Image onclick="this.style.display='none'; Codehighlighter1_540_704_Open_Text.style.display='none'; Codehighlighter1_540_704_Closed_Image.style.display='inline'; Codehighlighter1_540_704_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_540_704_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_540_704_Closed_Text.style.display='none'; Codehighlighter1_540_704_Open_Image.style.display='inline'; Codehighlighter1_540_704_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_540_704_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_540_704_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(st.top())st.push(st.top()</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">left);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.pop();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">st.empty())<br><img id=Codehighlighter1_617_701_Open_Image onclick="this.style.display='none'; Codehighlighter1_617_701_Open_Text.style.display='none'; Codehighlighter1_617_701_Closed_Image.style.display='inline'; Codehighlighter1_617_701_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_617_701_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_617_701_Closed_Text.style.display='none'; Codehighlighter1_617_701_Open_Image.style.display='inline'; Codehighlighter1_617_701_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_617_701_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_617_701_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;p&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;st.top();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.pop();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;p</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.push(p</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">right);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;preTrave(TNode</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;root)<br><img id=Codehighlighter1_736_970_Open_Image onclick="this.style.display='none'; Codehighlighter1_736_970_Open_Text.style.display='none'; Codehighlighter1_736_970_Closed_Image.style.display='inline'; Codehighlighter1_736_970_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_736_970_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_736_970_Closed_Text.style.display='none'; Codehighlighter1_736_970_Open_Image.style.display='inline'; Codehighlighter1_736_970_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_736_970_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_736_970_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;stack</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">TNode</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">&nbsp;st;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(root&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">st.empty())<br><img id=Codehighlighter1_788_968_Open_Image onclick="this.style.display='none'; Codehighlighter1_788_968_Open_Text.style.display='none'; Codehighlighter1_788_968_Closed_Image.style.display='inline'; Codehighlighter1_788_968_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_788_968_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_788_968_Closed_Text.style.display='none'; Codehighlighter1_788_968_Open_Image.style.display='inline'; Codehighlighter1_788_968_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_788_968_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_788_968_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">(root)<br><img id=Codehighlighter1_806_905_Open_Image onclick="this.style.display='none'; Codehighlighter1_806_905_Open_Text.style.display='none'; Codehighlighter1_806_905_Closed_Image.style.display='inline'; Codehighlighter1_806_905_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_806_905_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_806_905_Closed_Text.style.display='none'; Codehighlighter1_806_905_Open_Image.style.display='inline'; Codehighlighter1_806_905_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_806_905_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_806_905_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">right)&nbsp;st.push(root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">right);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">left;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">st.empty())<br><img id=Codehighlighter1_928_965_Open_Image onclick="this.style.display='none'; Codehighlighter1_928_965_Open_Text.style.display='none'; Codehighlighter1_928_965_Closed_Image.style.display='inline'; Codehighlighter1_928_965_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_928_965_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_928_965_Closed_Text.style.display='none'; Codehighlighter1_928_965_Open_Image.style.display='inline'; Codehighlighter1_928_965_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_928_965_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_928_965_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;st.top();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.pop();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">void</span><span style="COLOR: #000000">&nbsp;postTrave(TNode</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">&nbsp;root)<br><img id=Codehighlighter1_1001_1379_Open_Image onclick="this.style.display='none'; Codehighlighter1_1001_1379_Open_Text.style.display='none'; Codehighlighter1_1001_1379_Closed_Image.style.display='inline'; Codehighlighter1_1001_1379_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1001_1379_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1001_1379_Closed_Text.style.display='none'; Codehighlighter1_1001_1379_Open_Image.style.display='inline'; Codehighlighter1_1001_1379_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1001_1379_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1001_1379_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;stack</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #000000">TNode</span><span style="COLOR: #000000">*&gt;</span><span style="COLOR: #000000">&nbsp;st;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;stack</span><span style="COLOR: #000000">&lt;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&gt;</span><span style="COLOR: #000000">&nbsp;stF;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(root&nbsp;</span><span style="COLOR: #000000">||</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">!</span><span style="COLOR: #000000">st.empty())<br><img id=Codehighlighter1_1070_1377_Open_Image onclick="this.style.display='none'; Codehighlighter1_1070_1377_Open_Text.style.display='none'; Codehighlighter1_1070_1377_Closed_Image.style.display='inline'; Codehighlighter1_1070_1377_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1070_1377_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1070_1377_Closed_Text.style.display='none'; Codehighlighter1_1070_1377_Open_Image.style.display='inline'; Codehighlighter1_1070_1377_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1070_1377_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1070_1377_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">while</span><span style="COLOR: #000000">&nbsp;(root)<br><img id=Codehighlighter1_1089_1149_Open_Image onclick="this.style.display='none'; Codehighlighter1_1089_1149_Open_Text.style.display='none'; Codehighlighter1_1089_1149_Closed_Image.style.display='inline'; Codehighlighter1_1089_1149_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1089_1149_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1089_1149_Closed_Text.style.display='none'; Codehighlighter1_1089_1149_Open_Image.style.display='inline'; Codehighlighter1_1089_1149_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1089_1149_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1089_1149_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.push(root);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stF.push(</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">left;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;st.top();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;f&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;stF.top();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.pop();stF.pop();<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">if</span><span style="COLOR: #000000">&nbsp;(f&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1231_1303_Open_Image onclick="this.style.display='none'; Codehighlighter1_1231_1303_Open_Text.style.display='none'; Codehighlighter1_1231_1303_Closed_Image.style.display='inline'; Codehighlighter1_1231_1303_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1231_1303_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1231_1303_Closed_Text.style.display='none'; Codehighlighter1_1231_1303_Open_Image.style.display='inline'; Codehighlighter1_1231_1303_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1231_1303_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1231_1303_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;st.push(root);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stF.push(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img id=Codehighlighter1_1270_1299_Open_Image onclick="this.style.display='none'; Codehighlighter1_1270_1299_Open_Text.style.display='none'; Codehighlighter1_1270_1299_Closed_Image.style.display='inline'; Codehighlighter1_1270_1299_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1270_1299_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1270_1299_Closed_Text.style.display='none'; Codehighlighter1_1270_1299_Open_Image.style.display='inline'; Codehighlighter1_1270_1299_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1270_1299_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1270_1299_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">right;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&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;(f&nbsp;</span><span style="COLOR: #000000">==</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">)<br><img id=Codehighlighter1_1326_1374_Open_Image onclick="this.style.display='none'; Codehighlighter1_1326_1374_Open_Text.style.display='none'; Codehighlighter1_1326_1374_Closed_Image.style.display='inline'; Codehighlighter1_1326_1374_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif" align=top><img id=Codehighlighter1_1326_1374_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1326_1374_Closed_Text.style.display='none'; Codehighlighter1_1326_1374_Open_Image.style.display='inline'; Codehighlighter1_1326_1374_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedSubBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span id=Codehighlighter1_1326_1374_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1326_1374_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">%d,&nbsp;</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">,&nbsp;root</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">data);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;root&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span><span style="COLOR: #0000ff">int</span><span style="COLOR: #000000">&nbsp;main()<br><img id=Codehighlighter1_1394_1691_Open_Image onclick="this.style.display='none'; Codehighlighter1_1394_1691_Open_Text.style.display='none'; Codehighlighter1_1394_1691_Closed_Image.style.display='inline'; Codehighlighter1_1394_1691_Closed_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif" align=top><img id=Codehighlighter1_1394_1691_Closed_Image style="DISPLAY: none" onclick="this.style.display='none'; Codehighlighter1_1394_1691_Closed_Text.style.display='none'; Codehighlighter1_1394_1691_Open_Image.style.display='inline'; Codehighlighter1_1394_1691_Open_Text.style.display='inline';" src="http://www.cppblog.com/Images/OutliningIndicators/ContractedBlock.gif" align=top></span><span id=Codehighlighter1_1394_1691_Closed_Text style="BORDER-RIGHT: #808080 1px solid; BORDER-TOP: #808080 1px solid; DISPLAY: none; BORDER-LEFT: #808080 1px solid; BORDER-BOTTOM: #808080 1px solid; BACKGROUND-COLOR: #ffffff"><img src="http://www.cppblog.com/Images/dot.gif"></span><span id=Codehighlighter1_1394_1691_Open_Text><span style="COLOR: #000000">{<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">r&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TNode(</span><span style="COLOR: #000000">1</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">r1&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TNode(</span><span style="COLOR: #000000">2</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">r2&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TNode(</span><span style="COLOR: #000000">3</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">r12&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TNode(</span><span style="COLOR: #000000">4</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;TNode&nbsp;</span><span style="COLOR: #000000">*</span><span style="COLOR: #000000">r21&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #0000ff">new</span><span style="COLOR: #000000">&nbsp;TNode(</span><span style="COLOR: #000000">5</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">left&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r1;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;r</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">right&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r2;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;r1</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">right&nbsp;</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r12;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;r2</span><span style="COLOR: #000000">-&gt;</span><span style="COLOR: #000000">left</span><span style="COLOR: #000000">=</span><span style="COLOR: #000000">&nbsp;r21;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;preTrave(r);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;inorderTrave(r);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;printf(</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">\n</span><span style="COLOR: #000000">"</span><span style="COLOR: #000000">);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;postTrave(r);<br><img src="http://www.cppblog.com/Images/OutliningIndicators/InBlock.gif" align=top>&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="COLOR: #0000ff">return</span><span style="COLOR: #000000">&nbsp;</span><span style="COLOR: #000000">0</span><span style="COLOR: #000000">;<br><img src="http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockEnd.gif" align=top>}</span></span><span style="COLOR: #000000"><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top><br><img src="http://www.cppblog.com/Images/OutliningIndicators/None.gif" align=top></span></div>
<img src ="http://www.cppblog.com/panther/aggbug/113915.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-04-28 23:54 <a href="http://www.cppblog.com/panther/archive/2010/04/28/113915.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>找N个数中的前 K 大的 数</title><link>http://www.cppblog.com/panther/archive/2010/04/28/113911.html</link><dc:creator>RUI</dc:creator><author>RUI</author><pubDate>Wed, 28 Apr 2010 15:09:00 GMT</pubDate><guid>http://www.cppblog.com/panther/archive/2010/04/28/113911.html</guid><wfw:comment>http://www.cppblog.com/panther/comments/113911.html</wfw:comment><comments>http://www.cppblog.com/panther/archive/2010/04/28/113911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panther/comments/commentRss/113911.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panther/services/trackbacks/113911.html</trackback:ping><description><![CDATA[<p>void swap(int&amp; a, int&amp; b)<br>{<br>&nbsp;int c = a; <br>&nbsp;a = b;<br>&nbsp;b = c;<br>}</p>
<p>int partion(int a[], int p, int r)<br>{</p>
<p>&nbsp;double pp = rand()/double(RAND_MAX);</p>
<p>&nbsp;int randpos = (int)((r-p) * pp) + p;</p>
<p><br>&nbsp;swap(a[p], a[randpos]);</p>
<p>&nbsp;int x = a[p];<br>&nbsp;int i=0, j =0;<br>&nbsp;i = p, j = r +1;<br>&nbsp;while(1)<br>&nbsp;{<br>&nbsp;&nbsp;while (i &lt;r &amp;&amp;a[++i] &lt; x);<br>&nbsp;&nbsp;while (a[--j] &gt; x);<br>&nbsp;&nbsp;if (i &gt;= j)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;break;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;swap(a[i],a[j]);<br>&nbsp;}<br>&nbsp;a[p] = a[j];<br>&nbsp;a[j] = x;<br>&nbsp;return j;<br>}</p>
<p>&nbsp;</p>
<p>int main()<br>{</p>
<p>&nbsp;int a[] = {7,6,5,1};<br>&nbsp;int pos = 0;<br>&nbsp;int K = 9994;<br>&nbsp;int st = 0;<br>&nbsp;int ed = sizeof (a) /sizeof(a[0]) - 1;<br>&nbsp;while (K)<br>&nbsp;{<br>&nbsp;&nbsp;pos = partion(a, st, ed);<br>&nbsp;&nbsp;if (ed - pos +1 &lt;= K)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;K -= ed-pos + 1;<br>&nbsp;&nbsp;&nbsp;for (int j = pos; j &lt;= ed; ++j)<br>&nbsp;&nbsp;&nbsp;&nbsp;cout &lt;&lt; a[j] &lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;ed = pos - 1;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;else <br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;st = pos+1;<br>&nbsp;&nbsp;}<br>&nbsp;&nbsp;if (st &gt; ed)<br>&nbsp;&nbsp;{<br>&nbsp;&nbsp;&nbsp;cout &lt;&lt; "error " &lt;&lt; endl;<br>&nbsp;&nbsp;&nbsp;return 1;<br>&nbsp;&nbsp;}<br>&nbsp;}</p>
<p>&nbsp;return 0;<br>}<br></p>
<img src ="http://www.cppblog.com/panther/aggbug/113911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panther/" target="_blank">RUI</a> 2010-04-28 23:09 <a href="http://www.cppblog.com/panther/archive/2010/04/28/113911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>