文章

7

粉丝

0

获赞

0

访问

108

头像
2026年(408)计算机学科专业基础综合试题 - 第41题回答
数据结构
发布于2026年3月22日 09:37
阅读数 8

(1)中序遍历得到有序序列,计算相邻的差值(2)

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

// 定义结果存储:由于可能存在多个差值相等的结点,使用数组记录
int resultNodes[100]; 
int count = 0;
int minDiff = INT_MAX;

/**
 * 核心递归函数:中序遍历寻找最小差值结点
 * @param T 当前处理的树结点指针
 * @param K 目标整数
 */
void findMinDiffNodes(BSTNode* T, int K) {
    if (T == NULL) return;

    // 1. 递归进入左子树
    findMinDiffNodes(T->left, K);

    // 2. 核心处理逻辑:计算当前绝对差
    int currentDiff = abs(T->data - K);

    if (currentDiff < minDiff) {
        // 情况一:发现更小的差值,重置结果集
        minDiff = currentDiff;
        count = 0;
        resultNodes[count++] = T->data;
    } 
    else if (currentDiff == minDiff) {
        // 情况二:发现相等的最小差值,加入结果集
        resultNodes[count++] = T-...

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发