数据结构--每天一题-顺序表删除
顺序表删除
顺序表删除,可以运行的!!!!!!
(默认1,2,3)
想改就for{scanf()}就行了
tips:后缀必须cpp
顺序表插入请看
https://blog.csdn.net/weixin_46493164/article/details/124261181
顺序表删除在上面点开插入的链接文章里有链接(我也没办法,外链只能加一个)
本文为删除
// An highlighted block
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define MaxSize 50
typedef int ElemType;
//静态分配
typedef struct {
ElemType data[MaxSize];
int length;//当前顺序表多少个元素
}SqList;
void PrintList(SqList& L)
{
for (int i = 0; i < L.length; i++) {
printf("%3d", L.data[i]);
}
printf("\n");
}
bool ListDelete(SqList& L, int i, ElemType e)
{
if (i<1 || i>L.length + 1)
return false;
if (L.length == 0)
{
return false;
}
e = L.data[i - 1];//获取顺序表对应的值
for (int j = i; j < L.length; j++)
//从i开始后面往前覆盖
{
L.data[j - 1] = L.data[j];//向前移一位
}
L.length--;
return true;
}
int main()
{
SqList L;
bool delret;
ElemType del;
L.data[0] = 1;
L.data[1] = 2;
L.data[2] = 3;
L.length = 3;
PrintList(L);
scanf("%d", &del);//按位置删除
delret = ListDelete(L, del, del);//删除元素
//L,位置,值。
//按值删除换换参数就行了
if (delret)
{
printf("删除成功\n");
printf("删除元素为%d\n",del);
PrintList(L);
}
else {
printf("false");
}
return 0;
}