05-树7 堆中的路径 (25分)
来源:互联网 发布:游戏程序员需要做什么 编辑:程序博客网 时间:2024/05/19 19:44
将一系列给定数字插入一个初始为空的小顶堆H[]
。随后对任意给定的下标i
,打印从H[i]
到根结点的路径。
输入格式:
每组测试第1行包含2个正整数NNN和MMM(≤1000\le 1000≤1000)NNN个要被插入一个初始为空的小顶堆的整数。最后一行给出MMM个下标。
输出格式:
对输入中给出的每个下标i
,在一行中输出从H[i]
到根结点的路径上的数据。数字间以1个空格分隔,行末不得有多余空格。
输入样例:
5 346 23 26 24 105 4 3
输出样例:
24 23 1046 23 1026 10
//使用指针竟然忘了赋初值。。debug半天。。#include <stdio.h>#include <stdlib.h>#define MINDATA -10005struct HNode { int Data[1005]; int size;};typedef struct HNode* Heap;Heap Creat() { Heap H; H = (Heap)malloc(sizeof(struct HNode)); H->Data[0] = MINDATA; H->size = 0; return H;}void Insert(Heap H, int x) { int i = ++H->size; for( ; x < H->Data[i/2]; i /= 2) H->Data[i] = H->Data[i/2]; H->Data[i] = x;}void search(int x, Heap H) { int i = x, flag = 0; while(i != 0) { if(!flag) flag = 1; else printf(" "); printf("%d", H->Data[i]); i /= 2; } printf("\n");}int main() { int N, M, x; int i; Heap H; scanf("%d%d", &N, &M); H = Creat(); while(N--) { scanf("%d", &x); Insert(H, x); } //for(i = 1; i <= H->size; i++) printf("%d ", H->Data[i]); while(M--) { scanf("%d", &x); search(x, H); } return 0;}//其实只用数组就可以了。。#include <stdio.h>#define MAXN 1005#define MINDATA -10005int Data[MAXN], size;void Insert(int x) { int i = ++size; for( ; x < Data[i/2]; i /= 2) Data[i] = Data[i/2]; Data[i] = x;}int main() { int N, M; int x; scanf("%d%d", &N, &M); Data[0] = MINDATA; size = 0; while(N--) { scanf("%d", &x); Insert(x); } while(M--) { scanf("%d", &x); printf("%d", Data[x]); x /= 2; while(x) { printf(" %d", Data[x]); x /= 2; } printf("\n"); } return 0;}
阅读全文
0 0
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树8 堆中的路径 (25分)
- 05-树7 堆中的路径 (25分)
- 5-5 堆中的路径 (25分)
- PAT 堆中的路径 (25分)
- kafka入门:简介、使用场景、设计原理、主要配置及集群搭建(转)
- css3深入了解之奇技淫巧
- No.01 "Hellworld"
- 常用Linux命令
- 解决unique_ptr在不同继承层次转化指针和deleter的问题
- 05-树7 堆中的路径 (25分)
- Spring框架(一)
- Matlab数组创建
- 最长不下降子序列
- Linux安全1-用户密码被暴力破解
- 图像处理库中图片缩放参数分析
- 从头到尾彻底理解傅里叶变换算法(上)
- 《Linux Shell编程从初学到精通(第2版)》pdf
- eclipse 插件刷新问题笔记