首页 > 其他 > 详细

完全二叉树

时间:2018-12-01 21:18:53      阅读:158      评论:0      收藏:0      [点我收藏+]

 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 <iostream>
 2 #include <algorithm>
 3 #include <cstring>
 4 #include <cstdio>
 5 #include <vector>
 6 #include <queue>
 7 #include <stack>
 8 #include <cstdlib>
 9 #include <iomanip>
10 #include <cmath>
11 #include <cassert>
12 #include <ctime>
13 #include <map>
14 #include <set>
15 using namespace std;
16 typedef long long ll;
17 const  int N =3500*2;
18 queue<int> que;
19 int n,x,y,flag=1;
20 char c;
21 struct Nod{
22     int l=0;
23     int r =0;
24 }nod[N];
25 bool bfs(int sta)
26 {
27    
28     que.push(sta);
29     while(!que.empty())
30     {
31         int top = que.front();
32         que.pop();   
33         if(!flag&&nod[top].l!=0)//flag==0时一定是叶子节点了
34             return 0;  
35         if(nod[top].l==0&&nod[top].r!=0)//不可能左边没有右边有
36             return 0;
37        if(nod[top].l==0||nod[top].r==0)
38         {
39             flag = 0;
40         }                    
41         if(nod[top].l!=0)
42             que.push(nod[top].l);
43         if(nod[top].r!=0)
44             que.push(nod[top].r);
45         
46     }
47     return 1;
48 }
49 int main()
50 {
51     scanf("%d",&n);
52     while(n--)
53     {
54        scanf("%d%d",&x,&y);
55        cin>>c;
56         if(c==L)
57         {
58             nod[x].l=y;
59         }
60         else
61         {
62             nod[x].r=y;
63         }
64     }
65     if(bfs(1))
66        printf("Yes\n");
67     else
68         printf("No\n");
69       return 0;
70 }

 

完全二叉树

原文:https://www.cnblogs.com/tingtin/p/10050777.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!