学习总结8

# [USACO3.4] 美国血统 American Heritage

## 题目描述

农夫约翰非常认真地对待他的奶牛们的血统。然而他不是一个真正优秀的记帐员。他把他的奶牛 们的家谱作成二叉树,并且把二叉树以更线性的“树的中序遍历”和“树的前序遍历”的符号加以记录而 不是用图形的方法。

你的任务是在被给予奶牛家谱的“树中序遍历”和“树前序遍历”的符号后,创建奶牛家谱的“树的 后序遍历”的符号。每一头奶牛的姓名被译为一个唯一的字母。(你可能已经知道你可以在知道树的两 种遍历以后可以经常地重建这棵树。)显然,这里的树不会有多于 26 个的顶点。

这是在样例输入和样例输出中的树的图形表达方式:


```plain
         C
         /  \
        /  \
       B    G
      / \  /
       A   D  H
        / \
       E   F

```

附注:

- 树的中序遍历是按照左子树,根,右子树的顺序访问节点;
- 树的前序遍历是按照根,左子树,右子树的顺序访问节点;
- 树的后序遍历是按照左子树,右子树,根的顺序访问节点。

## 输入格式

第一行一个字符串,表示该树的中序遍历。

第二行一个字符串,表示该树的前序遍历。

## 输出格式

单独的一行表示该树的后序遍历。

## 样例 #1

### 样例输入 #1

```
ABEDFCHG
CBADEFGH
```

### 样例输出 #1

```
AEFDBHGC
```

解题思路

这个题目主要是考对二叉树的前序中序和后序的输出。我们可以根据他给的前序来查找中序中对应的根。

代码

#include 
using namespace std;
char g[30];
char j[30];
int n;
int chu(int l,int r)
{
    int x,y;
    if(l>r)
        return 0;
    for(x=0;x

今日总结

我今天看了C++中的关于栈和队列的函数,并且开始看二叉树,但看的有点慢,有点难以理解,当做题时脑海中一点想法都没有,极其没有学习效率的一天。

你可能感兴趣的:(学习,算法)