#include<stdio.h>
typedef int elemtype;
#define MAX_SIZE 100
#define LISTINCREMENT 10
#include<malloc.h>
#define ERROR 0
typedef struct{
elemtype *elem;
int size;
int capacity;
}seqlist;
void initlist(seqlist L)//初始化顺序表L。
{
L.elem = (elemtype *)malloc(sizeof(elemtype)*MAX_SIZE);
L.size = 0;
L.capacity = MAX_SIZE;
}
void insertlist(seqlist L,int i,elemtype e) //在顺序线性表上的第i个位置上插入元素e
{
if (i<1&&i>L.size)//判断i取值是否合理
{
printf("插入位置不合法,请重新输入\n");
}
if (L.size>=L.capacity) {//当储存空间满的时候,需要先扩容,再插入。
printf("当前储存空间已满,增加分配\n");
elemtype *newbase = (elemtype *)malloc(sizeof(elemtype)*(L.capacity+LISTINCREMENT));
if (!newbase){
printf("增加分配失败!请查找原因。\n");
}
L.elem=newbase;
}
// elemtype q=&(L.elem[i-1]);
int m;
for (m=L.size-1;m=i-1;m--){
L.elem[m]=L.elem[m-1];
}
L.elem[m]=e;
L.size++;
}
void showlist(seqlist *L)
{
int i=0;
if(L.size=0)printf("表为空。\n");
for(i=0;i=L.size-1;i++)
{
printf("%d\t",L.elem[i]);
}
}
int main (){
seqlist L;
initlist(L);
int i=1;
elemtype e=5;
showlist(L);
// scanf("%d %d",i,e);
// insertlist(L,i,e);
// showlist(L);
return 0;
}