程序实现的功能:
- 先创建一个长度包含5个元素的顺序表,其表的数据类型为整型;
- 并且把你创建的顺序表元素输出显示;
- 在顺序表的某位置实现插入一个新的数据元素,并显示出新的顺序表。
#include<stdio.h>
#include<stdlib.h>
#define OK 1
#define ERROR 0
#define OVERFLOW -1
#define List_Size 100
#define ListIncrement 10
typedef int ElemType;//typedef double ElemType;
typedef struct{
ElemType *elem;
int length;
int listsize;
}SqList;
int InitList(SqList &L){
L.elem=new ElemType[List_Size];
if(!L.elem)
exit (OVERFLOW);
L.length=0;
return OK;
}
void CreateList(SqList &L,int n){
int i;
printf("请输入%d个元素,构造顺序表\n",n);
for(i=0;i<n;i++){
scanf("%d",&L.elem[i]);
L.length++;
}
}
int ListInsert(SqList &L,int i,ElemType x){
int j;
ElemType *p;
if(i<1||i>L.length)return ERROR;
if(L.length>=L.listsize){
p=(ElemType *)realloc(L.elem,(L.listsize+ListIncrement)*sizeof(ElemType));
if(!p)exit(OVERFLOW);
L.elem=p;
L.listsize=L.listsize+ListIncrement;
}
for(j=L.length-1;j>=i-1;j--)
L.elem[j+1]=L.elem[j];
L.elem[i-1]=x;
++L.length;
return OK;
}
void DispList(SqList L){
int i;
for(i=0;i<L.length;i++)
printf("%d ",L.elem[i]);
printf("\n");
}
int main(){
SqList La,Lb,Lc;
SqList L;
int i=4;
ElemType x=88;
InitList(L);
CreateList(L,5);
printf("构造的顺序表如下:\n");
DispList(L);
ListInsert(L,i,x);
printf("在顺序表L的第4个元素前插入元素88后的顺序表如下:\n");
DispList(L);
}
运行结果截图: