文章

166

粉丝

0

获赞

0

访问

9.9k

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

(1)对于一个节点i若其有左孩子则保存在SqBiTNode[2i+1]中,若其有右孩子则保存在SqBiTNode[2i+2]中 ,设置一个初值min,中序遍历这颗树,若当前值小于min则返回false,若当前值大于min则把当前值赋值给min,看这颗树的中序遍历序列是否升序序列

(2)

#define min INT_MIN
int i = 0;
bool inorderBST(SqBiTree bt,琲nt i ,int *min){
	if(i<bt.ElemNum && SqBiTree[i] != -1){//中序遍历二叉树 判断是否是升序序列 
		if(!inorderBST(bt,2*i+1,min))  return false;
		if(bt.SqBiTNode[i] <= min) return false;
		min = bt.SqBiTNode[i];
		if(!inorderBST(bt,2*i+2,int min)) return false;
	}
	return true;
}

 


评分及理由

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

得分:4分

理由:学生正确描述了中序遍历的方法来判断二叉搜索树的性质,思路与标准答案一致,且表述清晰。

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

得分:6分

理由:学生的代码基本实现了中序遍历的思路,但存在以下问题:

  • 代码中使用了未定义的变量名"SqBiTree[i]",应为"bt.SqBiTNode[i]",属于语法错误,扣1分。
  • 函数参数"int min"在递归调用时传递了错误类型(应为指针),导致编译错误,扣1分。
  • min变量未正确初始化和更新,可能导致逻辑错误,扣1分。

题目总分:4+6=10分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发