本文共 1970 字,大约阅读时间需要 6 分钟。
将一系列给定数字顺序插入一个初始为空的小顶堆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 446 23 26 24 1024 is the root26 and 23 are siblings46 is the parent of 2323 is a child of 10输出样例:FTFT
/*本题思路:先将输入的数据逐个存储到整形数组u当中。 u[i]:10 23 26 46 24i: 1 2 3 4 5 .....然后将u[i]数组中的值保存到map集合当中map v,形成一个:v[u[i]]:10 23 26 46 24value :1 2 3 4 5关系如下四种: x和y是兄弟节点,v[x]/2==v[y]/2x是根节点,v[x]==1x是y的子节点,v[x]/2==v[y]y是x的子节点,v[y]/2==v[x] 小顶堆:任意一个节点小于其左子节点和右子节点; */#include #include
转载地址:http://ahvcf.baihongyu.com/