• 完全二叉树


     H: CBT?

    时间限制: 1 s      内存限制: 128 MB     
     我的状态

    题目描述

    对于二叉树,如果这棵树的节点排布是按行从上到下,每行从左到右挨个放置,中间不会有空闲的节点。则我们称之为完全二叉树。

    注:这棵树的根节点的值一定是1

    输入

    输入数字正整数n (1n201≤n≤20)

    接下来n行,每行为两个数字(a,b)和一个字符c(L 或者 R),如果字符c是L,则表示b是a的左子节点;如果字符c是R,则表示b是a的右子节点。 (1a,b30001≤a,b≤3000)

    输出

    判断这棵树是否为完全二叉树,如果是则输出Yes,否则输出No

    样例输入

    5
    1 2 L
    1 3 R
    2 4 L
    2 5 R
    3 6 L
    

    样例输出

    Yes

    提示

    样例解释:样例所描述的二叉树结构如下

    很显然这是一个完全二叉树。

    来源


     我的状态

    © 2018  JustOJ     中文  English  | Any problems please contact ismdeep@qq.com | 在线说
     
     
     
     
     1 #include <cstdio>
     2 #include <cstdlib>
     3 #include <cstring>
     4 #include <iostream>
     5 #include <algorithm>
     6 #include <queue>
     7 using namespace std;
     8 const int N =1e5+10;
     9 struct Node{
    10     int l=0;
    11     int r=0;
    12 }node[100];
    13 int n;
    14 int a,b;
    15 int flag=1;
    16 char c; 
    17 queue<int>Q; 
    18 bool  bfs(int x){
    19     Q.push(x);
    20     while(!Q.empty()){
    21         int u=Q.front();
    22         Q.pop();
    23     if(!flag&&node[u].l!=0) return 0;//叶子节点没有孩子 
    24     if(node[u].l==0&&node[u].r!=0) return 0;//不可能有右无左 
    25     if(node[u].l==0||node[u].r==0) flag=0;//以后的节点一定都是叶子节点了 
    26     if(node[u].l!=0) Q.push(node[u].l);//必须从左到右查询 
    27     if(node[u].r!=0) Q.push(node[u].r);
    28 }
    29 return 1;
    30 }
    31 int  main()
    32 {
    33     scanf("%d",&n);
    34     for(int i=0;i<n;i++){
    35         scanf("%d%d",&a,&b);
    36         cin>>c; 
    37         if(c=='L') node[a].l=b;
    38         else node[a].r=b;
    39     }
    40     if(bfs(1))
    41     printf("Yes
    ");
    42     else
    43     printf("No
    ");
    44     return  0;
    45  } 
  • 相关阅读:
    getter 和 setter方法
    了解coredata 数据库的博客
    iOS 本地缓存简述
    iOS 9.0 xcode7
    iOS 直播推流SDK -- PLCameraStreamingKit
    时间充裕的时候看看技术总结
    技术分享7
    学习笔记-音频编解码
    学习笔记-weak strong ARC mrc
    飘雪效果的swf
  • 原文地址:https://www.cnblogs.com/tingtin/p/10050777.html
Copyright © 2020-2023  润新知