7-1 关于堆的判断 (25 分)
大一下半期数据结构
关于堆的判断
将一系列给定数字顺序插入一个初始为空的小顶堆H[]
。随后判断一系列相关命题是否为真。命题分下列几种:
x is the root
:x
是根结点;x and y are siblings
:x
和y
是兄弟结点;x is the parent of y
:x
是y
的父结点;x is a child of y
:x
是y
的一个子结点。- 输入格式:
- 每组测试第1行包含2个正整数
N
(≤ 1000)和M
(≤ 20),分别是插入元素的个数、以及需要判断的命题数。下一行给出区间[−10000,10000]内的N
个要被插入一个初始为空的小顶堆的整数。之后M
行,每行给出一个命题。题目保证命题中的结点键值都是存在的。 - 输出格式:
- 对输入的每个命题,如果其为真,则在一行中输出
T
,否则输出F
。 - 输入样例:
5 4 46 23 26 24 10 24 is the root 26 and 23 are siblings 46 is the parent of 23 23 is a child of 10
输出样例:
F T F T
题目解答:
#include<stdio.h> #include<string.h> int a[100000]={0},n,m; int Insert (int i); int zhaobaba (int s);int main(void) {int i,x,y;char str1[100],str2[100],str3[100],str4[100];scanf ("%d %d",&n,&m);for (i=1;i<=n;i++) {scanf ("%d",&a[i]);if (i!=1) Insert (i);}getchar ();for (i=0;i<m;i++) {scanf ("%d %s",&x,str1);if (strcmp (str1,"and")==0) {scanf ("%d %s %s",&y,str2,str3);if (zhaobaba (x)==zhaobaba(y)) printf ("T\n");else printf ("F\n");}else {scanf ("%s %s",str2,str3);if (strcmp (str3,"root")==0) {if (x==a[1]) printf ("T\n");else printf ("F\n");}else if (strcmp (str3,"parent")==0) {scanf ("%s %d",str4,&y);if (zhaobaba (y)==x) printf ("T\n");else printf ("F\n");}else {scanf ("%s %d",str4,&y);if (zhaobaba (x)==y) printf ("T\n");else printf ("F\n");}}}return 0; } int Insert (int i) {int item;while (1) {if (i==1) break;else if (a[i]<a[i/2]) {item = a[i];a[i] = a[i/2];a[i/2] = item;i = i/2;}else break;} } int zhaobaba (int s) {int i;for (i=1;i<=n;i++) {if (a[i]==s) break;}return a[i/2]; }
7-1 关于堆的判断 (25 分)相关推荐
- 7-42 关于堆的判断 (25 分)
7-42 关于堆的判断 (25 分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y a ...
- 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整
problem L2-012 关于堆的判断 (25分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: ...
- 【解析】基础实验4-2.5 关于堆的判断 (25 分)
立志用最少的代码做最高效的表达 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are ...
- 关于堆的判断 (25 分)
题目: 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are siblings:x和y ...
- L2-012 关于堆的判断 (25 分)
写在前面的废话 今天把追了两个星期的小说看完了-感觉很是感慨啊, 在这里纪念一下: 我欲乘风向北行,雪落轩辕大如席. 我欲借船向东游,绰约仙子迎风立. 我欲踏云千万里,庙堂龙吟奈我何? 昆仑之巅沐日光 ...
- 7-28 搜索树判断 (25 分)(思路加详解) just easy!
一:题目 对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值.如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树. 现在我们给出一个 ...
- 堆中的路径 (25 分)
7-17 堆中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000) ...
- 7-3 堆中的路径 (25 分)
7-3 堆中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000), ...
- python 判断该地址 文件创建时间2020年10月14日14时25分32秒 文件最后一次访问时间 文件最后一次修改时间
#1.判断该地址 #1.文件名 #2.文件路径 #3.文件扩展名 #4.文件创建时间2020年10月14日14时25分32秒 #5.文件最后一次访问时间 #6.文件最后一次修改时间 #7.文件的大小( ...
最新文章
- IOS一些显示效果和动画效果资料
- 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
- Linux 入门基础
- beyond compare 4 的30天试用期已过-解决方法
- 聊聊HTTPS和SSL/TLS协议
- 为什么 ++[[]][+[]]+[+[]] = 10 ?
- 2016年回顾2017年目标之流水账
- JavaWeb——web.xml配置详细解读
- windows搭建virtualbox虚拟机安装的android环境
- 谈谈ILDasm的功能限制与解除
- 邓宁-克鲁格效应(Dunning-Kruger effect,达克效应)
- 什么是敏捷开发,敏捷开发落地指南之迭代排期
- ubuntu 10.04 恢复 默认桌面布局
- Windows Server Core 2022 (一)安装
- 德国电信撕逼诺基亚:史上最烂5G供应商
- php找不到localhost下的文件夹,我在localhost里找不到shopImooc下的文件,每次都要手动输入地址,还有就是index.php每次打开都是这样的页面,是数据库没连吗...
- android 电子签名 手写签名 功能实现
- 以太网 四轴 五轴 六轴 多轴 运动控制卡 运动控制器 源代码+图纸 方案
- Flash Professional CC新功能简介
- 手把手教你爬取淘宝的笔记本电脑数据