贴一下原始代码,我实际跑一下看看
#include<stdio.h>
#include<malloc.h>
#include<stdlib.h>
#define maxsize 100
#define ERROR 0
#define OVERFLOW -1
#define OK 1
typedef int Status;
typedef int ElemType;
typedef struct {
ElemType* elem;
int length;
}Sqlist;
Sqlist L;
Status InitList_Sq(Sqlist L) {
L->elem = (ElemType)malloc(sizeof(ElemType) * maxsize);
if (!L->elem)exit(OVERFLOW);
L->length = 0;
return OK;
}
void input(Sqlist L,int n ) {
int i;
L->length = n;
for (i = 0;i < L->length;i++)
L->elem[i] = 2 * i + 1;
for (i = 0;i < L->length;i++)
printf("L->elem[i]");
}
Status ListDelete_Sq(Sqlist L, int i) {
int j;
if ((i < 1) || (i > L->length))
return ERROR;
printf("删除的序号是%d\n", i);
for (j = i;j <= L->length - 1;j++)
L->elem[j - 1] = L->elem[j];
L->length--;
return OK;
}
int main() {
Status InitList_Sq(Sqlist * L);
void input(Sqlist *L, int n);
Status ListDelete_Sq(Sqlist * L, int i);
Sqlist L;
printf("顺序表为:\n");
int n = 50;
input(&L, n);
int i = 20;
ListDelete_Sq(&L, i);
return 0;
}