2016/11/3 1002. 二叉树

来源:互联网 发布:上搜狐知天下 编辑:程序博客网 时间:2024/06/05 06:12

已知二叉树的前序和后序,则有多少种表示方式?

前序的第一个和后序的最后一个必是根节点,若前序的第二个和后序的倒数第二个相同,则只有一颗子树,无法确定左右,表示方式x2。否则则唯一确定。递归即得。

// Problem#: 19557// Submission#: 4895619// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by Informatic Lab of Sun Yat-sen University// Problem#: 19557// Submission#: 4895065// The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License// URI: http://creativecommons.org/licenses/by-nc-sa/3.0/// All Copyright reserved by Informatic Lab of Sun Yat-sen University#include <iostream>#include <string>using namespace std;int main(int argc, char* argv[]) {  string pre;  string post;  int count = 1;  cin >> pre >> post;  for (int i = 0; i < pre.size() - 1; ++i) {    char c0 = pre[i];    char c1 = pre[i + 1];    int pos = post.find(c0);    if (pos >= 1) {      char c3 = post[pos - 1];      if (c3 == c1)        count *= 2;    }  }  cout << count;  return 0;}                                 


0 0