【树论】新二叉树

原题传送门

思路


这道题的数据很水,准确说是有个bug——第一组数据一定是根节点和他的左右子节点,而先先序遍历的特点正是根左右的类深搜模式,于是只要先输出根,然后找到以根的左节点为父节点的节点,输出之,再找以此节点的左节点为父节点的节点,输出之......以此类推,直到不在有左节点,然后返回上一步,对右节点进行同样的操作,没有节点后就在返回,继续搜索其父节点的右节点......以此类推,直到返回到根节点的右节点,并将其搜索完,最后,返回根节点,递归结束。

这很明显是个递归的过程:
若参数非'*',则先输出参数,然后找到参数当父节点的节点组,再对这个参数组的左右节点的值进行递归即可。

这道题名曰树,但实际上就是一道递归题,无需建树~~~

Code


#include
using namespace std;
int n;
char a[30][3];
void f(char x)
{
    if(x!='*')
    {
        cout<>n;
    for(int i=1;i<=n;i++)
        cin>>a[i][0]>>a[i][1]>>a[i][2];
    f(a[1][0]);
    return 0;
}

你可能感兴趣的:(【树论】新二叉树)