蓝桥-ALGO-20-求先序排列
来源:互联网 发布:网络聊5毛钱是什么意思 编辑:程序博客网 时间:2024/06/05 01:51
ACM模版
描述
题解
不管是要输出先序还是后序,只要给定中序和另外一种遍历,就可以求出来。
根据各个序列之间的关系,很容易就能建树,然后再遍历一遍即可。
代码
#include <iostream>#include <string>using namespace std;typedef struct BTNode{ char data; struct BTNode *lc, *rc;} *BTree;BTree root;string m, l;void BuildBTree(BTree &t, int ms, int me, int ls, int le){ t = new BTNode; t->data = l[le]; t->lc = t->rc = NULL; int pos = ms; while (m[pos] != l[le]) { pos++; } int len = pos - ms; if (pos > ms) { BuildBTree(t->lc, ms, pos - 1, ls, ls + len - 1); } if (pos < me) { BuildBTree(t->rc, pos + 1, me, ls + len, le - 1); }}void PrintBTree(BTree p){ if (p != NULL) { cout << p->data; PrintBTree(p->lc); PrintBTree(p->rc); }}int main(int argc, char* argv[]){ cin >> m; cin >> l; BuildBTree(root, 0, int(m.size() - 1), 0, int(l.size() - 1)); PrintBTree(root); putchar(10); return 0;}
阅读全文
0 0
- 蓝桥-ALGO-20-求先序排列
- [ALGO-20] 求先序排列
- 蓝桥-ALGO-26-麦森数
- 蓝桥-ALGO-33-数列
- 蓝桥-ALGO-40-会议中心
- 蓝桥 ALGO-2 最大最小公倍数
- 蓝桥-ALGO-9-摆动序列
- 蓝桥-ALGO-10-集合运算
- 蓝桥-ALGO-12-幂方分解
- 蓝桥-ALGO-13-拦截导弹
- 蓝桥-ALGO-14-回文数
- 蓝桥-ALGO-16-进制转换
- 蓝桥-ALGO-17-乘积最大
- 蓝桥-ALGO-18-单词接龙
- 蓝桥-ALGO-19-方格取数
- 蓝桥-ALGO-22-数的划分
- 蓝桥-ALGO-24-统计单词个数
- 蓝桥-ALGO-27-FBI树
- Java冒泡排序法和选择排序法
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 F: qwb has a lot of Coins [nim]【博弈】
- rpy2 使用中注意的问题
- Java研发学习之路小回顾
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 G: qwb去面试 [找规律]【思维】
- 蓝桥-ALGO-20-求先序排列
- 利用Python抓取网络图片
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 H: qwb与学姐 [MST+LCA]【数据结构】
- string类的内部实现
- 之江学院第0届校赛(决赛) qwb与支教 (二分+容斥原理)
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 I: qwb VS 去污棒 [可持久化01字典树]【数据结构】
- mysql分组取每组前几条记录(排名) 附group by与order by的研究
- 淘淘商城系列——redis-desktop-manager的使用
- 2017年第0届浙江工业大学之江学院程序设计竞赛决赛 J: qwb又偷懒了 [BIT]【数据结构】