zoukankan      html  css  js  c++  java
  • 7-2 是否完全二叉搜索树(30 分)

    将一系列给定数字顺序插入一个初始为空的二叉搜索树(定义为左子树键值大,右子树键值小),你需要判断最后的树是否一棵完全二叉树,并且给出其层序遍历的结果。

    输入格式:

    输入第一行给出一个不超过20的正整数N;第二行给出N个互不相同的正整数,其间以空格分隔。

    输出格式:

    将输入的N个正整数顺序插入一个初始为空的二叉搜索树。在第一行中输出结果树的层序遍历结果,数字间以1个空格分隔,行的首尾不得有多余空格。第二行输出YES,如果该树是完全二叉树;否则输出NO

    输入样例1:

    9
    38 45 42 24 58 30 67 12 51
    

    输出样例1:

    38 45 24 58 42 30 12 67 51
    YES
    

    输入样例2:

    8
    38 24 12 45 58 67 42 51
    

    输出样例2:

    38 45 24 58 42 12 67 51
    NO
    

    代码:

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    int a[100],b;
    int n;
    void add(int i,int d)
    {
        if(a[i] == -1)
        {
            a[i] = d;
            return;
        }
        if(d > a[i])add(i*2,d);
        else add(i*2+1,d);
    }
    int main()
    {
        scanf("%d",&n);
        memset(a,-1,sizeof(a));
        for(int i = 0;i < n;i ++)
        {
            scanf("%d",&b);
            add(1,b);
        }
        int c = 0,i = 0;
        while(c < n)
        {
            while(a[i] == -1)i++;
            if(c)printf(" %d",a[i]);
            else printf("%d",a[i]);
            i ++;
            c ++;
        }
        if(i == n + 1)printf("
    YES");
        else printf("
    NO");
    }
  • 相关阅读:
    css学习_css3伸缩布局 flex布局
    css学习_cs3s旋转的图片
    css学习_css3过渡
    css学习_css伪元素的本质
    css学习_css精灵技术、字体图标
    css学习_css用户界面样式
    Python 的 with 语句
    KNN--Python实现
    Python中NumPy(axis=0 与axis=1)
    Python中escape和unescape
  • 原文地址:https://www.cnblogs.com/8023spz/p/7711787.html
Copyright © 2011-2022 走看看