严《数据结构》算法2.4(在第i个元素前插入一个元素e)实现与测试
完整代码如下:
#include<stdio.h>
#include<stdlib.h>
#define Size 100
struct array
{
int* p;
int len;
};
typedef struct array list,* listptr;
void Initlist(listptr ptr);//初始化结构体
void insert(listptr ptr,const int i,const int e);
//第i个位置前插入元素e
int main()
{
list a;
Initlist(&a);
insert(&a,2,-11);
for(int i=0;i!=a.len;i++){
printf("%d ",a.p[i]);
}
return 0;
}
void Initlist(listptr ptr)
{
ptr->p=(listptr)malloc(sizeof(list)*Size);
printf("Input the len:");
scanf("%d",&ptr->len);
for(int i=0;i!=ptr->len;i++)
scanf("%d",&ptr->p[i]);
}
void insert(listptr ptr,const int i,const int e)
{
if(ptr->len+1==i){//e插到末尾
ptr->p[ptr->len]=e;
ptr->len++;//更新ptr->len,即a.len
return;
}
if(i<