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;
    }
    
  • 相关阅读:
    架构漫谈-阅读笔记(一)
    一线架构师实践指南--总结
    周四进度二
    质量属性改进
    结对作业第一次
    软件工程(2019)第三次作业
    软件工程(2019)第二次作业
    MarkDown编辑方法网址
    软件工程(2019年)第一次作业
    本人的coding地址
  • 原文地址:https://www.cnblogs.com/gongdakai/p/11230183.html
Copyright © 2011-2022 走看看