zoukankan      html  css  js  c++  java
  • 【树论】新二叉树

    原题传送门

    思路


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

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

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

    Code


    #include<iostream>
    using namespace std;
    int n;
    char a[30][3];
    void f(char x)
    {
        if(x!='*')
        {
            cout<<x;
            for(int i=1;i<=n;i++)
                if(a[i][0]==x)
                {
                    f(a[i][1]);
                    f(a[i][2]);
                }
        }
        return;
    }
    int main()
    {
        cin>>n;
        for(int i=1;i<=n;i++)
            cin>>a[i][0]>>a[i][1]>>a[i][2];
        f(a[1][0]);
        return 0;
    }
    
  • 相关阅读:
    emacs jedi
    opencv 基本demo
    emacs列编辑
    observable operator example
    angular keydown 例子
    回调和匿名函数
    gin cors
    angular rxjs
    python dbus note
    视频截图
  • 原文地址:https://www.cnblogs.com/gongdakai/p/11230183.html
Copyright © 2011-2022 走看看