/********************************************************************************************************
*
* file name: Zqh_splist_4.22.2.c
* author : keyword2024@163.com
* date : 2024/04/22
* function : 删除顺序表L中下标为p(0≤p≤length-1)的元素,成功返回1,否则返回0,并将被删除元素的值赋给e。
* note : 考研题
*
* Copyright (c) 2023-2025 keyword2024@163.com All right Reserved
* ******************************************************************************************************/
// 优化前
// 定义顺序表结构体
typedef struct {
int data[MAX_SIZE];
int length;
} SeqList;
int SeqList_Remove(*L,int p)
{
//判断顺序表的地址是否有效
if(NULL == L)
{
return 0;
}
int e = 0; //变量e,记录待删除元素的值
//把待删除元素的值备份到变量e中
e = L[p];
//把待删除元素的后继元素向前移动一个单位
for (int i = p; i < length; ++i)
{
L[i] = L[i+1];
}
return 1;
}
// 优化后
// 删除顺序表L中下标为p的元素,成功返回1,否则返回0,并将被删除元素的值赋给e
int SeqList_Remove(SeqList *L, int p, int *e) {
if (p < 0 || p >= L->length) {
return 0; // 删除失败,下标越界
}
*e = L->data[p]; // 将被删除元素的值赋给e
// 将后续元素前移
for (int i = p; i < L->length - 1; i++) {
L->data[i] = L->data[i + 1];
}
L->length--; // 更新顺序表长度
return 1;
}
标签:返回,下标,删除,int,元素,length
From: https://www.cnblogs.com/kencszqh/p/18151614