﻿<?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++博客-pzz-文章分类-九度oj</title><link>http://www.cppblog.com/panzhizhou/category/19246.html</link><description /><language>zh-cn</language><lastBuildDate>Tue, 01 May 2012 13:30:24 GMT</lastBuildDate><pubDate>Tue, 01 May 2012 13:30:24 GMT</pubDate><ttl>60</ttl><item><title>九度oj 1184</title><link>http://www.cppblog.com/panzhizhou/articles/173383.html</link><dc:creator>pzz</dc:creator><author>pzz</author><pubDate>Tue, 01 May 2012 12:14:00 GMT</pubDate><guid>http://www.cppblog.com/panzhizhou/articles/173383.html</guid><wfw:comment>http://www.cppblog.com/panzhizhou/comments/173383.html</wfw:comment><comments>http://www.cppblog.com/panzhizhou/articles/173383.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/panzhizhou/comments/commentRss/173383.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/panzhizhou/services/trackbacks/173383.html</trackback:ping><description><![CDATA[<div>&nbsp; 给定一个先序序列，要根据这个序列建立二叉树，然后中序输出，这一题关键是递归的思想，当然非递归也可以，递归的话，这一题给我的启示那就是，可以让最后递归的返回值传给根，以便于最后的输出！<br />&nbsp;<font color="#000000" face="Verdana">#include&lt;iostream&gt;<br />using namespace std;<br />//根据先序遍历递归建立二叉树，然后中序输出即可<br />struct Tree<br />{<br />&nbsp;Tree *lnode;<br />&nbsp;Tree *rnode;<br />&nbsp;char data;<br />}tree;<br />Tree *root;<br />Tree *Root; <br />char str[103];<br />int id;<br />Tree *work()<br />{<br />&nbsp; Tree *root;<br />&nbsp; if(str[id++]=='#') root=NULL;<br />&nbsp; else<br />&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root=new Tree;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root-&gt;data=str[id-1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root-&gt;lnode=work();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root-&gt;rnode=work();<br />&nbsp; }<br />&nbsp; return root;<br />} <br />void middisp(Tree *p)&nbsp; //递归的形式都忘了 <br />{<br />&nbsp;if(p!=NULL)<br />&nbsp; { middisp(p-&gt;lnode);<br />&nbsp;&nbsp;&nbsp; cout&lt;&lt;p-&gt;data&lt;&lt;" ";<br />&nbsp;&nbsp;&nbsp; middisp(p-&gt;rnode);<br />&nbsp; }<br />}<br />int main()<br />{<br />&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; Tree *Root;<br />&nbsp;&nbsp;&nbsp; while(cin&gt;&gt;str)<br />&nbsp;&nbsp;&nbsp; {<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Root=work();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; middisp(Root);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; cout&lt;&lt;endl;<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; system("pause");<br />&nbsp;&nbsp;&nbsp; return 0;<br />}<br /></font></div><img src ="http://www.cppblog.com/panzhizhou/aggbug/173383.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/panzhizhou/" target="_blank">pzz</a> 2012-05-01 20:14 <a href="http://www.cppblog.com/panzhizhou/articles/173383.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>