文章
62
粉丝
0
获赞
0
访问
10.0k
(1)
输出表达式树的中序遍历,并在遍历每个子树前输出'(',遍历完一棵子树后输出')'。
(2)
// isRoot在根节点为true
void Print(node *root, bool isRoot)
{
// 叶子节点输出后直接return
if (!root->left && !root->right) {
printf("%s", data);
return;
}
// 非根子树先输出左括号
if (!isRoot) {
printf("(");
}
Print(root->left, false);
printf("%s", data);
Print(root->right, false);
// 非根子树完成遍历输出右括号
if (!isRoot) {
printf(")");
}
}
评分及理由
(1)得分及理由(满分5分)
得分:3分
理由:学生的基本设计思想正确,即通过中序遍历输出表达式,并在适当位置添加括号。但是描述不够精确,没有明确指出括号添加的规则(只在非根节点处添加括号),且没有说明深度或层次的概念。标准答案中通过深度参数控制括号的添加,更加严谨。
(2)得分及理由(满分10分)
得分:6分
理由:
登录后发布评论
暂无评论,来抢沙发