代码如下:
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
constexpr auto MAXSIZE = 50;
constexpr auto OVERFLOW = -2;
constexpr auto OK = 0;
constexpr auto ERROR = 0;
typedef int ElemType;
typedef char ArcType;
//建立顺序表
typedef struct
{
ArcType no[12];//学号
ArcType name[20] ;//姓名
ElemType price;//成绩
}Student;
typedef struct
{
Student *elem;//动态数组,存储空间的基地址
ElemType length;
}SqList;
//顺序表的初始化
ElemType InintList(SqList &L)
{//创造一个空的顺序表L
L.elem=new Student[MAXSIZE];//或者是:L.elem=(ElemType*)malloc(sizeof(ElemType)*MAXSIZE);
if(!L.elem) return OVERFLOW;//存储空间分配失败退出
L.length=0;//空表长度为0
printf("初始化完成n");
return OK;
}
//顺序表中学生信息
ElemType CreateList(SqList &L)
{
ElemType n,i;
L.length=0;
printf("请输入学生人数:n");
scanf("%d",&n);
printf("请输入学生的信息:n");
for(i=0;iL.length+1)) return ERROR;
if(L.length==MAXSIZE) return ERROR;
for(j=L.length-1;j>=i-1;j--)//j>=i-1
{
L.elem[j+1]=L.elem[j];
}
L.elem[i-1]=e;
L.length++;
printf("插入后表长为:%dn",L.length);
return OK;
}
//顺序表的删除
ElemType ListDelete(SqList &L)
{
ElemType i,j;
printf("请输入要删除的学生信息的位置:n");
scanf("%d",&i);
if((i<1)||(i>L.length)) return ERROR;
for(j=i;j
运行结果:



