C 程序:删除顺序表指定下标元素
问题:删除顺序表L中下标为p(0<p<length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e
#define MAXSIZE 100
typedef int DataType_t;
typedef struct {
DataType_t data[MAXSIZE]; // 顺序表存储空间
int length; // 当前长度
} SeqList_t;
int SeqList_Delete(SeqList_t *L, int p, DataType_t *e)
{
// 检查位置合法性
if (L == NULL || p <= 0 || p >= L->length - 1)
return 0;
// 备份要删除的值
*e = L->data[p];
// 元素前移
for (int i = p; i < L->length - 1; ++i) {
L->data[i] = L->data[i + 1];
}
// 更新长度
L->length--;
return 1;
}
int main() {
SeqList_t L = {{10, 20, 30, 40, 50}, 5};
DataType_t val;
int p = 2;
if (SeqList_Delete(&L, p, &val)) {
printf("删除成功,删除的值是:%d\n", val);
printf("删除后顺序表:");
for (int i = 0; i < L.length; ++i) {
printf("%d ", L.data[i]);
}
} else {
printf("删除失败\n");
}
return 0;
}

浙公网安备 33010602011771号