usaco American Heritage
2011-10-28 09:25
309 查看
这道题可以用来练习编码!
代码如下:
代码如下:
/* ID: guo geer PROG: heritage LANG: C++ */ #include<iostream> #include<cstdio> #include<cstring> #include<string> #include<fstream> using namespace std; struct Node { char v; Node *left; Node *right; }; int len; char pre[30], in[30]; Node *head = new Node; int strIndex(int startIndex, int endIndex, char obj) { for(int i=startIndex; i<=endIndex; i++) if(in[i] == obj) return i; } void buildTree(Node *&h, int a, int b, int m, int n) { if(a > b || m > n) return; h = new Node; h->v = pre[m]; h->left = NULL; h->right = NULL; //printf("%d %d %d %d %c" ,a, b, m, n, h->v); //system("pause"); int index = strIndex(a, b, pre[m]); buildTree(h->left, a, index-1, m+1, m+index-a); buildTree(h->right, index+1, b, m+index-a+1, n); } void postOrder(Node *h) { if(h == NULL) return; postOrder(h->left); postOrder(h->right); printf("%c", h->v); } int main() { freopen("heritage.in", "r", stdin); freopen("heritage.out", "w", stdout); while(scanf(" %s", in) == 1) { scanf(" %s", pre); len = strlen(in); buildTree(head, 0, len-1, 0, len-1); postOrder(head); printf("\n"); } return 0; }
相关文章推荐
- 【USACO题库】3.4.2 American Heritage美国血统
- usaco American Heritage
- USACO American Heritage 解题报告
- USACO / American Heritage (经典递归入门)
- American Heritage USACO 3.4 (二叉树前序中序求后序)
- USACO 3.4 American Heritage美国血统 (树的遍历)
- USACO American Heritage
- 【USACO题库】3.4.2 American Heritage美国血统
- JZOJ1294.【USACO题库】3.4.2 American Heritage美国血统
- USACO 3.4 American Heritage
- USACO3.4.2--American Heritage
- USACO 3.4.3 American Heritage
- USACO 3.4 American Heritage
- usaco3.4.1 American Heritage
- usaco American Heritage
- USACO-Section 3.4 American Heritage (分治)
- USACO Training 3.4.2 American Heritage 题解与分析
- American Heritage usaco
- USACO American Heritage
- American Heritage