数据结构学习中,记录学习过程,顺便分享给学习中的你!
感谢你的关注、点赞、收藏支持!
- 顺序表的插入:
#define InitSize 10
typedef struct{
int *data;
int MaxSize;
int length;
} SeqList;
//时间复杂度 O(n)
bool ListInsert(SqList &L,int i,int e){
if(i<1||i>L.length+1)
return false;
if(L.length>=MaxSize)
return false;
for(int j=L.length;j>=i;j>=i;j--)
L.data[j]=L.data[j-1]; //顺序表最后面的元素先移动
L.data[i-1]=e;
L.length++;
return true;
}
- 顺序表的删除
//从删除的元素后开始向前移动
//时间复杂度O(n)
bool ListDelete(SqList &L,int i,int &e){
if(i<1||i>L.length)
return false;
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);
int e = -1;
if e = -1;
if(ListDelete(L,3,e))
printf("已删除第3个元素,删除元素值为%d\n",e);
else
printf("位序i不合法,删除失败\n");
return 0;
}