文章

316

粉丝

0

获赞

0

访问

47.2k

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

1):我们利用中序遍历进行遍历这颗树,当遍历到的结点左右孩子至少有一个为空此时要加括号;

2):

int getPriority(char op) {
    if (op == '+' || op == '-') {
        return 1;
    } else if (op == '*' || op == '/') {
        return 2;
    }
    return 0;
}

// 将表达式树转换为中缀表达式并输出
void convertToInfix(BTree *root) {
    if (root == NULL) {
        return;
    }
    // 叶子节点(操作数),直接输出
    if (root->left == NULL && root->right == NULL) {
        printf("%s", root->data);
        return;
    }
    // 内部节点(操作符),需要考虑括号
    // 左子树需要加括号的情况:左子树存在且左子树操作符优先级低于当前节点操作符优先级
    if (root->left != NULL && getPriority(root->data[0]) > getPriority(root->left->data[0])) {
        printf("(");
  ...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发