当前位置: 首页 > wzjs >正文

十堰网站建设怎么做网站教程

十堰网站建设,怎么做网站教程,做耳鼻喉医院网站多少钱,太原网站建设司7-5 堆中的路径 1 题目原文2 思路解析3 代码实现 1 题目原文 题目链接:7-5 堆中的路径 将一系列给定数字插入一个初始为空的最小堆 h h h。随后对任意给定的下标 i i i,打印从第 i i i 个结点到根结点的路径。 输入格式: 每组测试第 1 1 1 行包含 …

7-5 堆中的路径

  • 1 题目原文
  • 2 思路解析
  • 3 代码实现

1 题目原文

题目链接:7-5 堆中的路径

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

输入格式:

每组测试第 1 1 1 行包含 2 2 2 个正整数 n n n m ( ≤ 1 0 3 ) m (≤10^3) m(103),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间 [ − 1 0 4 , 1 0 4 ] [−10^4,10^4 ] [104,104] 内的 n n n 个要被插入一个初始为空的小顶堆的整数。最后一行给出 m m m 个下标。

输出格式:

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

输入样例:

5 3
46 23 26 24 10
5 4 3

输出样例:

24 23 10
46 23 10
26 10

2 思路解析

    此题考查最小堆。
        1. 定义最小优先队列 pq
        2. 按照题目要求,遍历所给数组,依次将元素加入 pq,操作完之后即获得了一个最小堆;
        3. 根据所给下标,从下往上依次遍历输出堆中的元素,直到根结点,即堆中的路径,注意题目中的下标和自定义的堆中的下标。
    堆和优先队列可以参考这篇文章,这里不再赘述其原理和实现过程,只给出代码实现(应用)。

3 代码实现

#include <stdio.h>
#include <stdlib.h>int* create_heap(int n) {int* res = (int*)malloc(n * sizeof(int));return res;
}/** 此题中只需要入队,所以只实现上浮操作即可 **/
void adjust_up_heap(int* heap, int n) {int t = heap[n], i = (n - 1) >> 1;while (i >= 0 && t < heap[i]) {heap[n] = heap[i];n = i;i = (i - 1) >> 1;}heap[n] = t;
}int* find_path_to_root(int* heap, int i, int* n) {int* res = (int*)malloc(*n * sizeof(int));int j = i, p = 0;while (j >= 0) {res[p++] = heap[j];j = (j - 1) >> 1;}res = (int*)realloc(res, p * sizeof(int));*n = p;return res;
}void destroy_arr(int* arr) { free(arr); }int main(void) {int n = 0, m = 0, i = 0, j = 0, k = 0;scanf("%d%d", &n, &m);int* heap = create_heap(n);for (i = 0; i < n; i++) {scanf("%d", heap + i);adjust_up_heap(heap, i);}while (m--) {scanf("%d", &i);k = n;int* r = find_path_to_root(heap, i - 1, &k);printf("%d", r[0]);for (j = 1; j < k; j++) {printf(" %d", r[j]);}printf("\n");destroy_arr(r);}destroy_arr(heap);return 0;
}

注意题目的下标是从 1 1 1 开始的,代码中的堆的下标是从 0 0 0 开始的。

http://www.dtcms.com/wzjs/98687.html

相关文章:

  • 如何给网站做引流百度新闻网页
  • 手机上有那种网站吗网站可以自己做吗
  • 网站备案要关闭吗公司网站如何推广
  • 怎么做免费网站 视频谷歌的推广是怎么样的推广
  • 网站建设的基本技术项目营销推广方案
  • 网站建站助手网络培训班
  • 可以做家装设计的网站廊坊seo整站优化
  • 企业网站建设合同书.doc优秀营销软文范例500字
  • 农林网站建设公司乐陵seo优化
  • 创意聊城做网站的公司手机百度seo怎么优化
  • 选择网站建设公司好seo技术分享
  • asp企业营销型网站建设宁波seo排名优化价格
  • 外贸网站建设如何做呢深圳网站制作哪家好
  • cmd iis重启单个网站老域名购买
  • 长沙城乡建设网站首页免费发布广告的网站
  • 网站建设店铺工业设计公司
  • 有哪些能做专门接做标书的网站万能推广app
  • 邢台县教育局五库建设网站app开发定制
  • 黑糖不苦建设的网站网络营销的渠道有哪些
  • 合肥网站建设的公司哪家好志鸿优化网下载
  • 潍坊网站开发招聘信息软文广告经典案例分析
  • 做爰全过程免费狐狸网站西安百度代运营
  • 济宁哪家网站建设公司正规巩义网站优化公司
  • 网站开发兼职接单平台seo站外推广
  • 进一步加强门户网站建设的通知行业网站网址
  • 免费自助网站河北百度竞价优化
  • 福建新闻最新消息seo教程搜索引擎优化
  • 南京做网站的客户电话域名注册哪个平台比较好
  • 我公司是做网站开发的怎么纳税疫情最新消息今天封城了
  • 福建建设厅安全员报名网站关键词优化推广排名