5-5 堆中的路径 (25分)
来源:互联网 发布:淘宝上买的东西靠谱吗 编辑:程序博客网 时间:2024/05/16 05:37
5-5 堆中的路径 (25分)
将一系列给定数字插入一个初始为空的小顶堆 H[] 。随后对任意给定的下标 i ,打印从 H[i] 到根结点的路径。
输入格式:
每组测试第1行包含2个正整数N和M
输出格式:
对输入中给出的每个下标 i ,在一行中输出从 H[i] 到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。
输入样例:
5 346 23 26 24 105 4 3
输出样例:
24 23 1046 23 1026 10
点击访问 PTA-测验
思路
#include<stdlib.h>#include<stdio.h>/* 评测结果 时间 结果 得分 题目 编译器 用时(ms) 内存(MB) 用户2016-08-28 06:36 答案正确 25 5-5 gcc 3 1 569985011测试点结果 测试点 结果 得分/满分 用时(ms) 内存(MB)测试点1 答案正确 13/13 2 1测试点2 答案正确 6/6 1 1测试点3 答案正确 2/2 1 1测试点4 答案正确 4/4 3 1查看代码*/typedef struct Heap{int *heap;int MaxSize;int MinData;}*MinHeap;void Insert(MinHeap,int);MinHeap Create(int);int main(){ int n,m; scanf("%d%d",&n,&m); MinHeap H=Create(n);int num;for(int i=0;i<n;i++){ scanf("%d",&num); Insert(H,num);}for(int i=0;i<m;i++){ scanf("%d",&num); for(int j=num;j>1;j/=2){ printf("%d ",H->heap[j]); }printf("%d\n",H->heap[1]);} return 0;}void Insert(MinHeap H,int X){//插入 int parent=++H->MaxSize; for(;H->heap[parent/2]>X;parent/=2 ){ H->heap[parent]=H->heap[parent/2]; } H->heap[parent]=X;}MinHeap Create(int MaxSize){//创建一个空的小顶堆 MinHeap H=(MinHeap)malloc(sizeof(struct Heap));H->heap=(int*)malloc(sizeof(int)*(MaxSize+1));H->MaxSize=0;H->MinData=-10001;H->heap[0]=H->MinData;//确保够xiao以起到哨兵作用 return H;}
0 0
- 5-5 堆中的路径 (25分)
- 5-5 堆中的路径 (25分)
- 5-5 堆中的路径 (25分)
- 5-5 堆中的路径 (25分)
- 5-6 堆中的路径 (25分)
- 5-6 堆中的路径 (25分)
- PTA习题 5-5 堆中的路径 (25分)
- PAT 堆中的路径 (25分)
- 树8 堆中的路径 (25分)
- 5-5 堆中的路径 (25分) -- 小堆树性质,如何调整
- PTA 数据结构与算法题目集(中文)5-5 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 5-3 树的同构 (25分)
- 5-4 是否同一棵二叉搜索树 (25分)
- PAT乙级(Basic Level)1012(C++)
- C# 删除日志函数。
- 一起talk C栗子吧(第一百八十一回:C语言实例--通过printf函数输出%)
- 5-5 堆中的路径 (25分)
- Geekband STL与泛型编程 第一周作业
- TensorFlow与TensorLayer教程[精选][转]
- 5-6 列出连通集 (25分)
- SqLite数据库MVC模式
- Playground中格式注释语法
- Vagrant使用指南:Vagrant第一个Helloworld例子
- TCP之Eclipse控制台的群聊
- http://bailian.openjudge.cn/practice/2694/2694:逆波兰表达式 题解