#include <stdio.h>
#include <stdlib.h>
#include<stdbool.h>
#define len 7//表初始容量
typedef struct {//动态顺序表初始化
int *data;
int length;
int MaxSize;
}SqList;
void Inite(SqList &L){
L.data=(int*)malloc(len*sizeof(int));
L.MaxSize=len;
L.length=len;//为了省事都规定为len
}
bool Delete(SqList &L,int i,int j){
if(i<0||i>=L.length)
return false;
if(j<0||j>=L.length)
return false;
if(i>j){
int temp=i;
i=j;
j=temp;
}
int l,k=j-i+1;
for(int l=j+1;l<len;l++){//特别注意下标是从0开始的
L.data[i]=L.data[l];
i++;
}
L.length=L.length-k;
printf("%d\n",L.length);//测试一下
return true;
}
int main(){
SqList L;
int i=0,x;
//List_TailInsert(L);
Inite(L);
//先给赋值看看
while(i<L.length){
scanf("%d",&x);
L.data[i]=x;
i++;
}
i=0;//i要重新赋值,否则就成了7
Delete(L,2,3);//也可以判断一下,省略
while(i<L.length){
printf("输出:[%d]",L.data[i]);
i++;
}
}## 顺序表删除下标i到j的数据元素
下面是运行结果
```cpp
1
2
3
4
5
6
7
5
输出:[1]输出:[2]输出:[5]输出:[6]输出:[7]
2020-05-18顺序表(动态分配)删除下标从i到j的数据元素
最新推荐文章于 2022-03-27 23:41:20 发布