大一下半期数据结构

关于堆的判断

将一系列给定数字顺序插入一个初始为空的小顶堆H[]。随后判断一系列相关命题是否为真。命题分下列几种:

  • x is the rootx是根结点;
  • x and y are siblingsxy是兄弟结点;
  • x is the parent of yxy的父结点;
  • x is a child of yxy的一个子结点。
  • 输入格式:
  • 每组测试第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 分)相关推荐

  1. 7-42 关于堆的判断 (25 分)

    7-42 关于堆的判断 (25 分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y a ...

  2. 【CCCC】L2-012 关于堆的判断 (25分),,手写堆,二叉树编号,向上调整

    problem L2-012 关于堆的判断 (25分) 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: ...

  3. 【解析】基础实验4-2.5 关于堆的判断 (25 分)

    立志用最少的代码做最高效的表达 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are ...

  4. 关于堆的判断 (25 分)

    题目: 将一系列给定数字顺序插入一个初始为空的小顶堆H[].随后判断一系列相关命题是否为真.命题分下列几种: x is the root:x是根结点: x and y are siblings:x和y ...

  5. L2-012 关于堆的判断 (25 分)

    写在前面的废话 今天把追了两个星期的小说看完了-感觉很是感慨啊, 在这里纪念一下: 我欲乘风向北行,雪落轩辕大如席. 我欲借船向东游,绰约仙子迎风立. 我欲踏云千万里,庙堂龙吟奈我何? 昆仑之巅沐日光 ...

  6. 7-28 搜索树判断 (25 分)(思路加详解) just easy!

    一:题目 对于二叉搜索树,我们规定任一结点的左子树仅包含严格小于该结点的键值,而其右子树包含大于或等于该结点的键值.如果我们交换每个节点的左子树和右子树,得到的树叫做镜像二叉搜索树. 现在我们给出一个 ...

  7. 堆中的路径 (25 分)

    7-17 堆中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000) ...

  8. 7-3 堆中的路径 (25 分)

    7-3 堆中的路径 (25 分) 将一系列给定数字插入一个初始为空的小顶堆H[].随后对任意给定的下标i,打印从H[i]到根结点的路径. 输入格式: 每组测试第1行包含2个正整数N和M(≤1000), ...

  9. python 判断该地址 文件创建时间2020年10月14日14时25分32秒 文件最后一次访问时间 文件最后一次修改时间

    #1.判断该地址 #1.文件名 #2.文件路径 #3.文件扩展名 #4.文件创建时间2020年10月14日14时25分32秒 #5.文件最后一次访问时间 #6.文件最后一次修改时间 #7.文件的大小( ...

最新文章

  1. IOS一些显示效果和动画效果资料
  2. 国庆特惠!超全技术栈来袭!视觉/激光SLAM+点云处理+三维重建+多传感器融合...
  3. Linux 入门基础
  4. beyond compare 4 的30天试用期已过-解决方法
  5. 聊聊HTTPS和SSL/TLS协议
  6. 为什么 ++[[]][+[]]+[+[]] = 10 ?
  7. 2016年回顾2017年目标之流水账
  8. JavaWeb——web.xml配置详细解读
  9. windows搭建virtualbox虚拟机安装的android环境
  10. 谈谈ILDasm的功能限制与解除
  11. 邓宁-克鲁格效应(Dunning-Kruger effect,达克效应)
  12. 什么是敏捷开发,敏捷开发落地指南之迭代排期
  13. ubuntu 10.04 恢复 默认桌面布局
  14. Windows Server Core 2022 (一)安装
  15. 德国电信撕逼诺基亚:史上最烂5G供应商
  16. php找不到localhost下的文件夹,我在localhost里找不到shopImooc下的文件,每次都要手动输入地址,还有就是index.php每次打开都是这样的页面,是数据库没连吗...
  17. android 电子签名 手写签名 功能实现
  18. 以太网 四轴 五轴 六轴 多轴 运动控制卡 运动控制器 源代码+图纸 方案
  19. Flash Professional CC新功能简介
  20. 手把手教你爬取淘宝的笔记本电脑数据

热门文章

  1. linux 安装apache、tomcat问题汇总
  2. GraphX中Pregel单源点最短路径(转)
  3. Spring Session Redis
  4. PS替换图片图标操作
  5. hdu 1856 并查集 求最大的子树含有元素的个数
  6. Rust创建项目的两种方式
  7. gitlib命令的使用
  8. 关于JAVA自带MD5的方法
  9. BigDecimal数据加法返回值接收
  10. C#项目打包后安装的桌面快捷方式图标怎么设置成自己想要的图标