1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树

Posted 辉小歌

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树相关的知识,希望对你有一定的参考价值。


https://pintia.cn/problem-sets/994805342720868352/problems/994805359372255232

建树并给其赋值,如果是完全二叉树,那么maxid一定为n,否则则不是完全二叉树。
找根节点,就找到入度为0的点就是根节点。

#include<bits/stdc++.h>
using namespace std;
int l[30],r[30];
int n,root,last,maxid,d[25];
void dfs(int u,int k)

    if(maxid<k)
    
        maxid=k,last=u;
    
    if(l[u]!=-1) dfs(l[u],k*2);
    if(r[u]!=-1) dfs(r[u],k*2+1);

int main(void)

    memset(l,-1,sizeof l);
    memset(r,-1,sizeof r);
    cin>>n;
    for(int i=0;i<n;i++)
    
        string a,b; cin>>a>>b;
        if(a!="-") l[i]=stoi(a),d[stoi(a)]++;
        if(b!="-") r[i]=stoi(b),d[stoi(b)]++;
    
    for(int i=0;i<n;i++) if(d[i]==0) root=i;
    dfs(root,1);
    if(maxid==n) printf("YES %d",last);
    else printf("NO %d",root);
    return 0;

以上是关于1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树的主要内容,如果未能解决你的问题,请参考以下文章

PAT甲级——1110 Complete Binary Tree (完全二叉树)

PAT (Advanced Level) 1110. Complete Binary Tree (25)

PAT甲级1110 Complete Binary Tree (25分)

1110 Complete Binary Tree (25分) 判断一棵二插树是否是完全二叉树

1110 Complete Binary Tree (25 分)难度: 一般 / 知识点: 判断完全二叉树

919.complete binary tree inserter