博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
American Heritage USACO 3.4 (二叉树前序中序求后序)
阅读量:5084 次
发布时间:2019-06-13

本文共 2162 字,大约阅读时间需要 7 分钟。

就是根据二叉树的中序,前序,求后序,我想法是先求出二叉树再后序出来。开始感觉想起来很混乱,后来拿笔在纸上写一写就清楚很多了

这题不是很难,思路要清晰即可

1 /* 2  3 ID: hubiao cave 4  5 PROG: heritage 6  7 LANG: C++ 8  9 */10 11 12 13 14 #include
15 16 #include
17 18 #include
19 20 using namespace std;21 22 23 string prestr,midstr;24 25 struct node26 {27 char m;28 node* left,*right;29 node()30 {31 left=right=NULL;32 }33 };34 35 node* groot;36 ofstream fout("heritage.out");37 node* GetChild(int ms,int me,int ps,int pe)38 {39 if(ms>me||ps>pe)40 return NULL;41 char parentch=prestr[ps];42 43 int mark;44 for(int i=ms;i<=me;i++)45 if(midstr[i]==parentch)46 {47 mark=i;48 break;49 }50 51 node* pnode=new node;52 pnode->m=parentch;53 pnode->left=GetChild(ms,mark-1,ps+1,ps+mark-ms);54 pnode->right=GetChild(mark+1,me,ps+mark-ms+1,pe);55 return pnode;56 57 }58 59 void AfterPrint(node* p)60 {61 if(p->left)62 AfterPrint(p->left);63 if(p->right)64 AfterPrint(p->right);65 fout<
m;66 }67 68 69 int main()70 71 {72 73 ifstream fin("heritage.in");74 75 76 77 fin>>midstr>>prestr;78 groot=new node;79 groot->m=prestr[0];80 int mark;81 for(int i=0;i
left=GetChild(0,mark-1,1,mark);87 groot->right=GetChild(mark+1,midstr.length()-1,1+mark,prestr.length()-1);88 89 AfterPrint(groot);90 fout<

留个影

USER: hubiao cave [cavehub1]TASK: heritageLANG: C++Compiling...Compile: OKExecuting...   Test 1: TEST OK [0.000 secs, 3500 KB]   Test 2: TEST OK [0.000 secs, 3500 KB]   Test 3: TEST OK [0.000 secs, 3500 KB]   Test 4: TEST OK [0.000 secs, 3500 KB]   Test 5: TEST OK [0.000 secs, 3500 KB]   Test 6: TEST OK [0.000 secs, 3500 KB]   Test 7: TEST OK [0.000 secs, 3500 KB]   Test 8: TEST OK [0.000 secs, 3500 KB]   Test 9: TEST OK [0.000 secs, 3500 KB]All tests OK.

YOUR PROGRAM ('heritage') WORKED FIRST TIME! That's fantastic -- and a rare thing. Please accept these special automated congratulations.

Here are the te

转载于:https://www.cnblogs.com/cavehubiao/p/3381521.html

你可能感兴趣的文章
React文档翻译 (快速入门)
查看>>
nodejs fs路径
查看>>
动态规划算法之最大子段和
查看>>
linux c:关联变量的双for循环
查看>>
深入浅出理解zend framework(三)
查看>>
python语句----->if语句,while语句,for循环
查看>>
javascript之数组操作
查看>>
LinkedList源码分析
查看>>
TF-IDF原理
查看>>
用JS制作博客页面背景随滚动渐变的效果
查看>>
JavaScript的迭代函数与迭代函数的实现
查看>>
一步步教你学会browserify
查看>>
Jmeter入门实例
查看>>
亲近用户—回归本质
查看>>
中文脏话识别的解决方案
查看>>
CSS之不常用但重要的样式总结
查看>>
Python编译错误总结
查看>>
URL编码与解码
查看>>
日常开发时遇到的一些坑(三)
查看>>
Eclipse 安装SVN插件
查看>>