标签:print 输出 输入 ++ 节点 scan printf 一个 scanf
#样例输入:
5 3
46 23 26 24 10
5 4 3
#样例输出
24 23 10
46 23 10
26 10
#define MAXN 1001 #define MINH -10001 #include<stdio.h> int H[MAXN],size; void Create() { size = 0; //设置岗哨,便于检测是否超过边界 H[0] = MINH; } void Insert(int X) { int i; for(i=++size;H[i/2]>X;i/=2){ H[i] = H[i/2]; } //返回的得到要插入的位置 H[i] = X; } int main(){ int n,m,i,x,j; scanf("%d %d",&n,&m); Create(); for(i=0;i<n;i++){ scanf("%d",&x); Insert(x); }
//进行从节点到根的输出 for(i=0;i<m;i++){ scanf("%d",&j); printf("%d",H[j]); while(j>1){ j/=2; printf(" %d ",H[j]); } printf("\n"); } return 0; }
标签:print 输出 输入 ++ 节点 scan printf 一个 scanf
原文地址:https://www.cnblogs.com/changfan/p/11832132.html