3 条题解

  • 5
    @ 2022-12-29 17:15:09

    模板题啦QWQ

    唯二要说的就是题目讲的不太清楚,首先输入的大写字母是节点编号为 i(i[1,n])i(i \in [1 , n]) 的值,不表示节点,输出时根据遍历时的编号把它转换下再输出即可。

    第二就是建议输入字符或字符串时不要用 scanf,建议用 cin,也不要用 getchar 之类的,会读到换行符和空格(一次比赛我就是这样出祸的

    #include <cstdio>
    #include <iostream>
    using namespace std;
    
    int n;
    struct Tree{ //树
        int l_son , r_son;
        char x;
    }tree[30];
    
    void dfs(int x , int flag = 1){
        if(!x) return ; //结束递归
        if(flag == 1)
            putchar(tree[x].x);
        dfs(tree[x].l_son , flag);
        if(flag == 2)
            putchar(tree[x].x);
        dfs(tree[x].r_son , flag);
        if(flag == 3)
            putchar(tree[x].x);
    }
    
    int main(void){
        cin.tie(0);
        scanf("%d" , &n);
        for(int i = 1;i <= n;i++){ //输入
            cin >> tree[i].x;
            scanf("%d%d" , &tree[i].l_son , &tree[i].r_son);
        }
        dfs(1);
        putchar('\n');
        dfs(1 , 2);
        putchar('\n');
        dfs(1 , 3);
        putchar('\n');
    }
    
  • 2
    @ 2022-6-19 14:08:15

    本人的方法可能不是最好的方法,仅供参考~~~

    #include <iostream>//懒得用万能头~~~
    #include <vector>//要用队列数据结构
    using namespace std;
    int n, m;
    char s1[27];
    struct Node//用结构体定义变量
    {
        int fa, l, r;
    };
    tree[15];
    void zhong(int p)//递归定义函数(中序遍历)
    {
        if (tree[p].l != 0)
            zhong(tree[p].l);
        cout << s1[p];
        if (tree[p].r != 0)
            zhong(tree[p].r);
    }
    void xian(int p)//递归定义函数(先序遍历)
    {
        cout << s1[p];
    	if (tree[p].l != 0)
            xian(tree[p].l);
        if (tree[p].r != 0)
            xian(tree[p].r);
    }
    void hou(int p)//递归定义函数(后序遍历)
    {
    	if (tree[p].l != 0)
            hou(tree[p].l);
        if (tree[p].r != 0)
            hou(tree[p].r);
        cout << s1[p];
    }
    int main()
    {
        cin >> n;
        for (int i = 1; i <= n; i++)
        {
            int a, b;
            cin >> s1[i] >> a >> b;//输入数据
            tree[i].l = a;
            tree[i].r = b;
            tree[a].fa = i;
            tree[b].fa = i;
        }
        xian(1);
        cout << endl;
    	zhong(1);
        cout << endl;
    	hou(1);
        cout << endl;
        return 0;
    }
    

    希望对大家有帮助!

  • -6
    @ 2022-4-24 16:50:06

    写题解请注意

    鼓励大家写题解,但注意题解格式。

    题解一定要有思路解析或代码注释,能否让别人理解你的思路

    也是你的能力的检验,不要只放无意义的代码给大家复制,那就失去了做题的初心。

    给代码两端加上这个会舒服一些

    ```cpp

    你的代码

    ```

    </span>

    这个点在键盘的左上角tab上面那个键,注意切换输入法

    #include<iostream>
    using namespace std;
    int main()
    {
        int n;
        cin>>n;//这是一个注释
        return 0;
    } 
    

    请注意严禁抄袭题解,写题解不要只放代码,需加上你的思路或代码注释。

    抄袭题解一经发现直接取消成绩。

    题解被删除的可能

    1. 代码不符合格式规范
    2. 没有思路讲解或者没有注释,
    3. 无意义的题解

    大家携手共同维护一个良好的编程环境,如果一经发现,多次作乱。可能会被管理员拉黑,请注意,一旦拉黑即失去登陆资格。

    • 1

    信息

    ID
    1178
    时间
    1000ms
    内存
    128MiB
    难度
    1
    标签
    递交数
    147
    已通过
    99
    上传者