zoukankan      html  css  js  c++  java
  • P1305 新二叉树 /// 二叉树的先序遍历

    题目大意:

    https://www.luogu.org/problemnew/show/P1305

    由题目可知,输入首位为 子树的根 其后为其左右儿子

    则除各行首位后的位置中 没有出现的那个字母肯定为这整棵树的根 

    从其出发就可找出先序排列

    #include <bits/stdc++.h>
    using namespace std;
    int n, flag[30];
    vector<int>vec[30];
    void print(char ch)
    {
        printf("%c",ch);
        for(int i=0;i<vec[ch-'a'].size();i++)
            print(vec[ch-'a'][i]+'a');
    }
    int main()
    {
        while(~scanf("%d",&n)) {
            string str;
            for(int i=0;i<n;i++) {
                char ch[5]; scanf("%s",ch); str+=ch[0];
                if(ch[1]!='*') vec[ch[0]-'a'].push_back(ch[1]-'a'),flag[ch[1]-'a']=1;
                if(ch[2]!='*') vec[ch[0]-'a'].push_back(ch[2]-'a'),flag[ch[2]-'a']=1;
            }
            for(int i=0;i<str.size();i++)
                if(!flag[str[i]-'a']) {
                    print(str[i]); break;
                }
        }
    
        return 0;
    }
    View Code
  • 相关阅读:
    三数之和
    167
    二分搜索树
    687
    索引堆
    二分查找 leetcode704
    leetcode 56合并区间 java
    leetcode 1046
    堆的数据结构java
    leetcode 493
  • 原文地址:https://www.cnblogs.com/zquzjx/p/9327081.html
Copyright © 2011-2022 走看看