• 6-7 树的层次遍历 uva122


    非常不熟练  照着书大的

    晚上尝试一下自己打  了解二叉树  用数组打

    第一次:

    #include<bits/stdc++.h>
    using namespace std;
    bool failed;
    
    
    void addnode(int v,char *s);
    char s[1000];
    struct node
    {
        bool  flag;
        int v;
         node *left,*right;
         node():flag(false),left(NULL),right(NULL){}
    
    };
    node *root;
    node *newnode(){return new node();}
    bool read_input()
    {
        failed=false;
        root=newnode();
        for(;;)
        {
            if(scanf("%s",s)!=1)return false;
            if(!strcmp(s,"()")) break;
            int v;
            sscanf(&s[1],"%d",&v);
            addnode(v,strchr(s,',')+1);
    
    
        }
        return true;
    
    }
    
    
    
    
    
    
    void addnode(int v,char *s)
    {
        int n=strlen(s);
        node *u=root;
        for(int i=0;i<n;i++)
        {
            if(s[i]=='L')
            {
                if(u->left==NULL)u->left=newnode();
                u=u->left;
    
            }
            else if(s[i]=='R')
            {
                if(u->right==NULL)u->right=newnode();
                u=u->right;
    
            }
    
        }
        if(u->flag)failed=true;
        u->v=v;
        u->flag=true;
    
    }
    
    bool bfs (vector<int>&ans)
    {
        queue<node*>q; ans.clear();
        q.push(root);
        while(!q.empty())
        {
            node *u=q.front();q.pop();
            if(!u->flag)return false;
            ans.push_back(u->v);
            if(u->left!=NULL)q.push(u->left);
            if(u->right!=NULL)q.push(u->right);
    
        }
        return true;
    
    
    }
    
    int main()
    {
    
       vector<int>ans;
       while(read_input())
       {
           if(!bfs(ans))failed=true;
           if(failed)printf("not complete
    ");
           else
           {
               for(int i=0;i<ans.size();i++)
               {
                   if(i==ans.size()-1)printf("%d
    ",ans[i]);
                   else printf("%d ",ans[i]);
    
               }
    
    
           }
    
    
       }
    
    
    
    
    
    
    
    
    
    
        return 0;
    }
    View Code
  • 相关阅读:
    iOS--异步下载
    linux搭建ftp服务器
    hexo常用命令
    Markdown入门
    Markdown 语法和 MWeb 写作使用说明
    vi/vim
    微信聊天机器人
    .vimrc
    配置双机
    python学习笔记(一)
  • 原文地址:https://www.cnblogs.com/bxd123/p/10288458.html
Copyright © 2020-2023  润新知