第一范文网 - 专业文章范例文档资料分享平台

NOIP2013初赛普及组C++题目及答案

来源:用户分享 时间:2025/11/30 18:53:52 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

值、小于其右子树上所有节点的值。试判断一棵树是否为二叉查找树。

输入的第一行包含一个整数 n,表示这棵树有 n 个顶点, 编号分别为 1, 2, ? , n,其 中编号为 1 的为根结点。之后的第 i 行有三个数 value, left_child , right_child ,分别表示该节点关键字的值、左子节点的编号、右子节点的编号;如果不存在左子节点或右子节点,则用 0 代替。输出 1 表示这棵树是二叉查找树,输出0 则表示不是。

#include using namespace std;const int SIZE = 100; const int INFINITE = 1000000; struct node {

int left_child, right_child, value; };node a[SIZE];

int is_bst(int root, int lower_bound, int upper_bound) {

int cur;

if (root == 0)

return 1;

cur = a[root].value;

if ((cur > lower_bound) && ( (1) ) && (is_bst(a[root].left_child, lower_bound, cur) == 1) && (is_bst( (2) , (3) , (4) ) == 1))

return 1; return 0; }

int main() {

int i, n; cin>>n;

for (i = 1; i <= n; i++)

cin>>a[i].value>>a[i].left_child>>a[i].right_child; cout<

6

第十九届全国青少年信息学奥林匹克联赛初赛

普及组参考答案

一、单项选择题(共20 题,每题1.5分,共计30分) 1 A 11 A

2 A 12 A 3 B 13 D 4 C 14 A 5 D 15 C 6 B 16 C 7 B 17 A 8 C 18 D 9 A 19 A 10 C 20 B

二、问题求解(共2 题,每题 5 分,共计 10 分;每题全部答对得5 分,没有部分分) 1. 14

2. s1 = 0,s2 = 1,s3 = 1,s4 = 1

三、阅读程序写结果(共 4 题,每题 8 分,共计 32 分) 1. 2. 3. 4.

3+5=8 6 7 4

四、完善程序(共计 28 分,以下各程序填空可能还有一些等价的写法,由各省赛区组织本省专家审定及上机验证,可以不上报CCF NOI 科学委员会复核) 1. (1) n –p + i (2) a[i] (3) n (4) i –p + 1 (5) a[i–p]

2. (1) cur < upper_bound (2) a[root].right_child (3) cur (4) upper_bound (5) 1

7

搜索更多关于: NOIP2013初赛普及组C++题目及答案 的文档
NOIP2013初赛普及组C++题目及答案.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6rapj8na15423gj8gje700kc5204u900khi_2.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top