#include <stdio.h>
#define MaxSize 10
typedef struct{
int *data;
int length;
}SqList;
void InitList(SqList &L)
{
L.length = 0;
}
bool ListDelete(SqList &L,int i,int &e) //i为位序; e为用来存放被删除的元素
{
if(i<1 || i>L.length)
return false;
e = L.data[i-1];
for(int j =i;j<=L.length;j++)
{
L.data[j-1] = L.data[j];
}
L.length--;
return true;
}
int main()
{
SqList L;
InitList(L);
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
L.data[3] = 4;
L.length = 4;
int del ; // 用变量e,把删除值带回来
bool ret = ListDelete(L,2,del);
if(ret)
{
printf("%d\n",del);
}
else
{
printf("位序i不合法,删除失败\n");
}
return 0;
}
关于#c++#的问题,请各位专家解答!
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
2条回答 默认 最新
快乐鹦鹉 2023-04-20 13:08关注data只是一个指针,没有分配空间啊
void InitList(SqList &L) { L.data = (int *)malloc(sizeof(int)*MaxSize); L.length = 0; }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报 编辑记录解决 1无用