zoukankan      html  css  js  c++  java
  • 洛谷 P1305 新二叉树

    题目描述

    输入一串二叉树,用遍历前序打出。

    输入输出格式

    输入格式:

     

    第一行为二叉树的节点数n。

    后面n行,每一个字母为节点,后两个字母分别为其左右儿子。

    空节点用*表示

     

    输出格式:

     

    前序排列的二叉树

     

    输入输出样例

    输入样例#1: 复制
    6
    abc
    bdi
    cj*
    d**
    i**
    j**
    思路:搜索
    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    string s[1000];
    int n,root,pos,l,r;
    int vis[1000];
    int lchild[1000],rchild[1000]; 
    void dfs(int now){
        cout<<char(now-1+'a');
        if(lchild[now])    dfs(lchild[now]);
        if(rchild[now])    dfs(rchild[now]);
    }
    int main(){
        scanf("%d",&n);
        for(int i=1;i<=n;i++){
            cin>>s[i];
            pos=s[i][0]-'a'+1;                 
            l=0,r=0;
            if(s[i][1]!='*')    l=s[i][1]-'a'+1;
            if(s[i][2]!='*')    r=s[i][2]-'a'+1;
            lchild[pos]=l;    vis[l]=1;
            rchild[pos]=r;    vis[r]=1;
        }
        for(int i=1;i<=n;i++)
            if(!vis[s[i][0]-'a'+1]){ root=s[i][0]-'a'+1;break; }
        dfs(root);
    }
     
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    VBA的几个小Demo_2
    VBA的几个小Demo
    Django部署在阿里云服务器上
    python面试题及解析
    Django知识扩展
    Django文件下载2
    Django文件下载
    Django文件上传
    My_First_Web
    10个jQuery小技巧
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/7859141.html
Copyright © 2011-2022 走看看