数据结构pta第一天: 堆中的路径 【用数组模拟堆的操作】

news2025/1/24 4:47:18

 这道题其实就涉及两个堆操作, 一个是插入,一个是通过从底到根的遍历

堆的插入:其实就是从下面往上,一个一个比较,(因为上面的节点里的值越来越小,如果插入的值比上面的节点小那么就要向上推)。

void insert(int X){
    int i;
    for(i = ++size ; X<H[i/2] ; i = i/2){
        H[i] = H[i/2];
    }
    H[i] = X;
}

堆的路径遍历: 这个更加简单,就是设置一个i,i等于i/2;就可以将那个节点从下往上遍历一遍。 

void traversal(int i){
    while(i>1){
        cout<<H[i]<<" ";
        i = i/2;
    }
    cout<<H[1]<<endl;
}

完整代码:

#include <iostream>

using namespace std;

#define MAXN 1001
#define MINH -10001

int H[MAXN];
int size;

void create(){
    size = 0;
//设置一个最小的值,当岗哨
    H[0] = MINH;
}

void insert(int X){
    int i;
    for(i = ++size ; X<H[i/2] ; i = i/2){
        H[i] = H[i/2];
    }
    H[i] = X;
}

void traversal(int i){
    while(i>1){
        cout<<H[i]<<" ";
        i = i/2;
    }
    cout<<H[1]<<endl;
}
int main(){
    int n,m;
    cin>>n>>m;
    create();
    for(int i=0;i<n;i++){
        int a;
        cin>>a;
        insert(a);
    }
    while(m--){
        int i;
        cin>>i;
        traversal(i);
    }
    return 0;
}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/521704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于AT89C51单片机的电子时钟设计与仿真

点击链接获取Keil源码与Project Backups仿真图&#xff1a; https://download.csdn.net/download/qq_64505944/87779867?spm1001.2014.3001.5503 源码获取 主要内容&#xff1a; 使用DS1302芯片作为计时设备&#xff0c;用6个7段LED数码管或者LCD162作为显示设备&#xff0c…

【软考七】面向对象技术--UML、设计模式(分数重,刷题刷题)

建议UML和设计模式去听听课&#xff0c;内容多&#xff0c;还需要记。这一部分内容较多&#xff0c;下半年的考生可以慢慢看&#xff0c;上半年的就去刷题吧。 该博客不适合学习UML和设计模式&#xff0c;只适合考试。要学的不要在这浪费时间&#xff0c;切记切记 在5月13号忽然…

MD-MTSP:孔雀优化算法POA求解多仓库多旅行商问题(提供MATLAB代码,可以修改旅行商个数及起点)

一、多仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

Midjourney8种风格极其使用场景

目录 ​编辑 引言 等距动画 场景 分析性绘图 场景 着色书 场景 信息图画 场景 双重曝光 场景 图示性绘画 场景 二维插图 场景 图解式画像 场景 总结&#xff1a; 八种风格箴言&#xff1a; 引言 我相信大家都或多或少玩过Midjourney&#xff0c;但是要形…

linux系统sed编辑器

sed编辑器 sed编辑器sed基础语法sed查询sed删除sed 替换sed 插入 sed编辑器 sed是文本处理工具&#xff0c;依赖于正则表达式&#xff0c;可以读取文本内容&#xff0c;工具指定条件对数据进行添加、删除、替换等操作&#xff0c;被广泛应用于shell脚本&#xff0c;以完成自动…

我所了解的老板

我所了解的老板 修心篇以名命物 扰我心良心的本来如此 是我心不要全挑剔别人 既是我因 受我之果长久之爱 美女养眼 贤妻养心 调研篇深度思考确定趋势确定时机预测筹划生存资料 做事篇做短视频心态&#xff0c;也是创业的心态做销售冠军的心态&#xff0c;也是创业的心态 修心篇…

【Python--定时任务的四种方法】

定时任务 前言while True&#xff1a;sleep()优点缺点 threading.Timer定时器多线程执行优点缺点 Timeloop库执行定时任务调度模块schedule优缺点 前言 当每隔一段时间就要执行一段程序&#xff0c;或者往复循环执行某一个任务&#xff0c;这就需要使用定时任务来执行程序。应…

【Unity项目实战】手把手教学:飞翔的小鸟(7)障碍对象池

承接上一篇&#xff1a;【Unity项目实战】手把手教学&#xff1a;飞翔的小鸟&#xff08;6&#xff09;添加障碍&#xff0c;我们已经生成了一个障碍物柱子&#xff0c;并且使得小鸟在越过柱子之后自动获得一分&#xff0c;接下来将继续讲解障碍物的随机生成。 一.脚本控制 障…

Centos7设置静态IP

Centos7设置静态IP及修改后不能联网问题解决方式 虚拟机外部配置1、打开Vmware选择虚拟网络编辑器菜单2、获取管理员权限&#xff0c;选择VMnet8&#xff0c;并点击还原默认设置&#xff0c;弹窗选择“是”。3、修改VMnet8的参数4、NAT设置5、确认虚拟机为NAT模式 虚拟机内部配…

数据流图(DFD)

目录 第十二章、数据流图&#xff08;DFD&#xff09;1、数据流图基本概念2、数据字典3、数据平衡原则4、数据流图试题解题技巧4.1、试题一4.2、试题二 第十二章、数据流图&#xff08;DFD&#xff09; 1、数据流图基本概念 数据流图是用于表示系统逻辑模型的一种工具。从数据…

【Swift】Swift和Objective-c混编

1.介绍 Swift和Objective-C都是苹果公司的编程语言&#xff0c;它们可以在同一个项目中同时使用。这种混编方式被称为“混合编程”&#xff08;Mixed Programming&#xff09;。 在混合编程时&#xff0c;我们需要用到一个桥接文件&#xff08;Bridging Header&#xff09;&a…

AfxMessageBox的两种用法

1 函数简介 函数声明如下&#xff1a; int AfxMessageBox(LPCTSTR lpszText,UINT nType MB_OK,UINT nIDHelp 0 ); int AFXAPI AfxMessageBox(UINT nIDPrompt,UINT nType MB_OK,UINT nIDHelp (UINT ) -1 );1.1 参数 lpszText 将显示在消息框的字符串。 nType 消息框…

使用Selenium模拟百度登录

前言 前面我已经安装好了Selenium并模拟成功了一下打开百度页面并进行查询&#xff0c;让我这个python初学者信心倍增&#xff0c;今天再来试一试百度登录 正文 把打开百度的代码放到构造方法中 ps:那个文件目录是用于后面滑块验证图片保存的。 def __init__(self):driver w…

Python实战基础8-列表

一、列表的基本使用 1.列表的格式 定义列的格式&#xff1a;[元素1&#xff0c;元素2&#xff0c;元素3&#xff0c;...&#xff0c;元素n] 变量tmp的类型为列表 tmp [XiaoChen,180,66.0] 列表中的元素可以是不同类型的 2.使用下标获取列表元素 namesList [XiaoChen,Xia…

上海AI lab提出VideoChat:可以与视频对话啦

夕小瑶科技说 原创 作者 | 小戏、ZenMoore 视频相比语言、图像&#xff0c;是更复杂更高级的一类表征世界的模态&#xff0c;而视频理解也同样是相比自然语言处理与计算机视觉的常见工作更复杂的一类工作。在当下大模型的洪流中&#xff0c;自然而然的想法就是大规模语言模型…

子矩形计数(多少个面积为k的全1子矩阵)【思维,两个一维数组相乘得到矩阵,计算一维数组中长度为x的全1子段】

3617. 子矩形计数&#xff08;多少个面积为k的全1子矩阵&#xff09; 输入样例1&#xff1a; 3 3 2 1 0 1 1 1 1输出样例1&#xff1a; 4输入样例2&#xff1a; 3 5 4 1 1 1 1 1 1 1 1输出样例2&#xff1a; 14#include <bits/stdc.h> using namespace std; #define …

Redisson锁的分析

文章目录 一、分布式锁概念1、实现思路2、出现死锁问题如何避免死锁问题 锁过期和释放当前不属于当前线程的锁解决不是加锁线程释放锁锁的过期时间如何解决 二、Redisson分布式锁Redis的部署方式对锁的影响集群模式Redlock实现高可靠的分布式锁 三、代码分析V1代码无锁V2代码单…

【C++从0到王者】第二站:类和对象(中)赋值运算符重载

文章目录 一、运算符重载1.运算符重载的使用2.运算符重载的注意事项 二、赋值运算符重载1.复制拷贝与拷贝构造2.赋值运算符重载的格式3.赋值运算符重载的实现4.赋值运算符重载的注意事项 一、运算符重载 1.运算符重载的使用 当我们实现一个日期类的时候&#xff0c;我们有时候…

Angular开发之——Angular打包部署项目(04)

一 概述 ng build 构建应用lite-server介绍及安装lite-server部署应用IIS管理器部署应用 二 ng build 构建应用 2.1 执行如下指令构建应用 ng build2.2 构建完成后&#xff0c;会创建一个 dist 文件夹 2.3 直接打开index.html会出错(需要借助于服务器部署) 三 lite-server介…

(二)PUN 2基本教程

一、介绍 PUN 基础教程是一个基于 Unity 的教程。我们将使用 Photon Cloud 开发第一个简单的 PUN 2 多人游戏。目标是同步每个玩家的动画角色、健康值和基本光线投射。 1.概述 本教程将从一个空项目开始&#xff0c;逐步指导您完成整个创建过程。在此过程中&#xff0c;将解释…