文章

59

粉丝

0

获赞

1

访问

12.2k

头像
2014年计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2025年7月25日 12:41
阅读数 63

(1)设定总权值为sum,树的结点数为n,设置左右边节点为l与r,从根节点开始,采用先序遍历方法,若该节点左右子树不全为空,则先将该节点权值增加weight,再往下遍历

(2)
typedef struct Bit-Tree
{int weight;
struct Bit-Tree *left;
struct Bit-Tree *right;

}tree, *root;
(3)
int sum=0;
void PreOrder(tree* root)
{
if(root!=NULL)//根节点不为空,说明该节点有路径
{
sum+=weight;
PreOrder(root->left);//递归遍历左子树
PreOrder(root->right);//递归遍历右子树
}
}


评分及理由

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

得分:1分

理由:学生的基本设计思想描述不清晰,没有明确说明如何计算带权路径长度(WPL),仅提到了先序遍历和权值累加,但未涉及叶子节点的深度与权值的乘积。部分思路正确但不完整。

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

得分:3分

理由:数据类型定义基本正确,但结构体名称“Bit-Tree”中使用了非法字符“-”,应为“BiTNode”或“BiTree”。其他部分符合要求。

(3)得分及理由(满分6分)

得分:2分

理由:算法实现存在严重逻辑错误。代码中未正确处理叶子节点的判断,且未考虑深度参数,导致无法正确计算WPL。此外,变量“weight”未正确引用(应为root->weight)。递归遍历部分正确,但核心逻辑错误。

题目总分:1+3+2=6分

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发