zoukankan      html  css  js  c++  java
  • 5-树7 堆中的路径 (25分)

    5-树7 堆中的路径 (25分)

    将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。

    输入格式:

    每组测试第1行包含2个正整数N和M(≤),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的N个要被插入一个初始为空的小顶堆的整数。最后一行给出M个下标。

    输出格式:

    对输入中给出的每个下标i,在一行中输出从H[i]到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。

    输入样例:

    5 3
    46 23 26 24 10
    5 4 3

    输出样例:

    24 23 10
    46 23 10
    26 10

    提测代码如下:

    #include <stdio.h>
    #include <stdlib.h>
    #define MAXN 1001
    #define MINH -10001
    
    int H[MAXN], size;
    
    void Create(){
        size = 0;
        H[0] = MINH;
    }
    
    void Insert(int elem)
    {
        int i;
        for(i=++size; H[i/2] > elem; i/=2){
            H[i] = H[i/2];
        }
        H[i] = elem;
    }
    
    int main()
    {
        int N, QueryN, elem;
        scanf("%d %d", &N, &QueryN);
        Create();
        for(int i = 0; i < N; i++){
            scanf("%d", &elem);
            Insert(elem);
        }
        int j;
        for(int i=0; i < QueryN; i++){
            scanf("%d", &j);
            printf("%d", H[j]);
            while(j>1){
                j/=2;
                printf(" %d", H[j]);
            }
            printf("
    ");
        }
        return 0;
    }

    提测结果:

  • 相关阅读:
    ID,ClientID,UniqueID的区别
    Struct构造函数
    关于sizeof,typeof
    C#文件读写
    code1
    .NET中加密与解密QueryString的方法
    addEventListener和attachEvent的区别
    执行带参数的存储过程
    如何得到机器上装的Powershell的版本
    [Gradle] How to determine OS info
  • 原文地址:https://www.cnblogs.com/2018shawn/p/13493957.html
Copyright © 2011-2022 走看看