求助|递减有序顺序表
85
2025.03.14
2025.03.14
发布于 江苏

#include <stdbool.h>

typedef struct {

int data[MAXSIZE]; // 假设 MAXSIZE 足够大

int length;

} SqList;

void MergeDescending(SqList *La, SqList Lb) {

int i = La->length - 1; // La 的最后一个元素下标

int j = Lb.length - 1; // Lb 的最后一个元素下标

int k = La->length + Lb.length - 1; // 合并后的最后一个位置下标

// 从后向前比较并填充

while (i >= 0 && j >= 0) {

if (La->data[i] > Lb.data[j]) {

La->data[k--] = La->data[i--]; // 取 La 的较大值

} else {

La->data[k--] = Lb.data[j--]; // 取 Lb 的较大值

}

}

// 处理剩余元素(若 Lb 有剩余)

while (j >= 0) {

La->data[k--] = Lb.data[j--];

}

// 更新 La 的长度

La->length += Lb.length;

}

null

为什么上述代码里最终合并的是递减有序的顺序表

评论 (0)