文章

87

粉丝

0

获赞

1

访问

17.3k

头像
2022年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年8月9日 10:38
阅读数 114

(1)二叉搜索树定义是左子树结点均小于根结点,右子树结点均小于根结点,设置一函数用于递归,超出数组下标的结点视为空结点,-1结点视为不存在的结点,若搜索至此该两节点满足搜索树定义,结束遍历,在每次递归时,将根节点视作左子树的最大范围high,右子树的最小范围low,直到遍历完毕,输出判断结果。
(2)
bool judgeTree(SqBiTree T, int i,int low ,int high)
{

if(i>T.ElemNum||T.SqBitNode[i]==-1)return true;
if(T.SqBitNode[i]<low||T.SqBitNode[i]>high) return false;
bool a=judgeTree(T,2*i+1,low,T.SqBitNode[i]);

bool b=judgeTree(T,2*i+2,T.SqBitNode[i],high);

return a&&b;
}


评分及理由

(1)得分及理由(满分4分)

得分:3分

理由:学生基本理解了二叉搜索树的定义和递归判断的思路,但描述中有一个错误:右子树结点应大于等于根结点,而非"均小于根结点"。此外,思路描述较为模糊,未明确说明如何初始化low和high的值。

(2)得分及理由(满分9分)

得分:7分

理由:代码整体结构与标准答案一致,实现了递归判断功能。但存在以下问题:
1. 变量名拼写错误:SqBitNode应为SqBiTNode(扣1分)
2. 缺少主函数和初始化low/high的调用部分(扣1分)
3. 未处理边界值LONG_MIN/LONG_MAX的情况(不扣分,因题目说明结点均为正整数)

题目总分:3+7=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发