05-树7 堆中的路径
来源:互联网 发布:js怎么给数组赋值 编辑:程序博客网 时间:2024/06/05 08:45
05-树7 堆中的路径(25 分)
将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。
输入格式:
每组测试第1行包含2个正整数N和M(≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-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 <iostream>using namespace std;const int minData=-50000;struct minHeap{ int *data; int Size; int Capacity;};minHeap* Create(int maxSize){ minHeap *A=new minHeap; A->data=new int[maxSize+1]; A->Size=0; A->Capacity=maxSize; A->data[0]=minData; return A;}void Insert(int x,minHeap* T){ int i=++T->Size; for(;T->data[i/2]>x;i/=2){ T->data[i]=T->data[i/2]; } T->data[i]=x;}int main() { int n,m,num; cin>>n>>m; minHeap *T=Create(n); for(int i=0;i<n;i++){ cin>>num; Insert(num,T); } for(int i=0;i<m;i++){ cin>>num; for(int i=num;i>1;i/=2){ cout<<T->data[i]<<' '; } cout<<T->data[1]<<endl; } delete [] T->data; delete T; return 0;}
阅读全文
0 0
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径
- 05-树7 堆中的路径【建堆】
- 建立堆-05-树7 堆中的路径
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 文章标题
- Java基础之继承
- C++Primer第三章习题(1)
- C++11 并发指南九(综合运用: C++11 多线程下生产者消费者模型详解)
- SphereFace : Deep Hypersphere Embedding for Face Recognition学习笔记
- 05-树7 堆中的路径
- React Native项目遇到的问题 -> 端口号修改
- c++ bitset 实现SMS4加密算法
- JavaScript专精系列(1)——值类型和引用类型
- uva127
- map和set的使用以及模拟实现
- 思六方武学《国际教练武才友创立》
- String StringBuffer Stringbuilder之间的区别
- UVALive 6173|HDU 4485|B-Casting|水体