数据结构的插入删除问题

​#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1024
#define elemtype int
typedef struct {
elemtype data[MAXSIZE];
int last;
} SequenList;
void CreateList_Sq(SequenList &L,elemtype a[],int n)
{
int i;
L = (SequenList )malloc(sizeof(SequenList));
for(i = 0; i < n; i++)
{
L -> data[i] = a[i];
}
L -> last = n;
}
int main()
{
SequenList * L;
int i,j;
elemtype a[] = {288,384,448,480,576,896};
CreateList_Sq(L,a,sizeof(a)/sizeof(int));
for(i = 0; i < ((L->last)/5 + 1 ); i++)
{
for(j=0; j<5; j++)
{
if(L->data[j + i
5]!=NULL)
printf("%d ",L->data[j + i
5]);
}
printf("\n");
}
return 0;
}
这是线性表,求插入和删除怎么做

img

img

供参考:

#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 1024
#define elemtype int
typedef struct {
    elemtype data[MAXSIZE];
    int last;
} SequenList;
void CreateList_Sq(SequenList *&L,elemtype a[],int n)
{
    int i;
    L = (SequenList*)malloc(sizeof(SequenList));
    for(i = 0; i < n; i++)
    {
        L -> data[i] = a[i];
    }
    L -> last = n;
}
int Insert_SequenList(SequenList *L,elemtype x,int i) //插入
{
    int j;
    if(i <= 0 || L->last > MAXSIZE || i > L->last) return -1;
    for(j = L->last;j > i-1;j--){
        L->data[j] = L->data[j-1];
    }
    L->data[i-1] = x;
    L->last++;
    return 0;
}
int Delete_SequenList(SequenList *L,int i)  //删除
{
    int j;
    if(i <= 0 || L->last <= 0 || i > L->last) return -1;
    for(j = i - 1;j < L->last;j++)
        L->data[j] = L->data[j+1];
    L->last--;
    return 0;
}
int main()
{
    SequenList * L;
    int i,j;
    elemtype a[] = {288,384,448,480,576,896};
    CreateList_Sq(L,a,sizeof(a)/sizeof(int));
    Insert_SequenList(L,7,1);
    Delete_SequenList(L,2);
    for(i = 0; i < ((L->last)/5 + 1 ); i++)
    {
       for(j=0; j<5; j++)
       {
           if(L->data[j + i*5]!=NULL)
           printf("%d ",L->data[j + i*5]);
       }
       printf("\n");
    }
    return 0;
}