在void in_Sequenlist(Sequenlist *L)函数中用getchar()函数结束输入,运行速度慢
运行后要5秒才能输入
#include<stdio.h>
#include<stdlib.h>
typedef int elemtype;
#define Maxsize 100
typedef struct sequlist{
elemtype data[Maxsize];
int last;
}Sequenlist;
Sequenlist * init_Sequenlist();//顺序表初始化
void in_Sequenlist(Sequenlist *L);//输入数据
int length_Sequenlist(Sequenlist *L);//求长度
void print_Sequenlist(Sequenlist *L);//打印
int insert_Sequenlist(Sequenlist *L,elemtype x,int i);//插入
int delete_Sequenlist(Sequenlist *L,int i);//删除
int main()
{
Sequenlist *L1,*L2;
L1=init_Sequenlist();
L2=init_Sequenlist();
in_Sequenlist(L1);
print_Sequenlist(L1);
printf("\n插入后:");
insert_Sequenlist(L1,5,3);
print_Sequenlist(L1);
printf("\n删除后:");
delete_Sequenlist(L1,2);
print_Sequenlist(L1);
printf("\n");
return 0;
}
Sequenlist * init_Sequenlist()
{
Sequenlist *L;
L=(Sequenlist *)malloc(sizeof(Sequenlist));
if(L!=NULL)
L->last=-1;
return L;
}
//***************************************
void in_Sequenlist(Sequenlist *L)
{
printf("输入数据,空格隔开,回车结束\n");
do{
scanf("%d",&L->data[L->last+1]); L->last++;
}while(getchar()!='\n');
}//*****************************************
int length_Sequenlist(Sequenlist *L)
{
return L->last+1;
}
void print_Sequenlist(Sequenlist *L)
{
int i;
for(i=0;i<L->last+1;i++)
printf("%d ",L->data[i]);
}
int insert_Sequenlist(Sequenlist *L,elemtype x,int i)
{
int j;
if(L->last>=Maxsize-1)
{
printf("顺序表已满\n");
return 0;
}
if(i<1||i>L->last+2)
{
printf("插入位置非法\n");
return 0;
}
for(j=L->last;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->last++;
return 1;
}
int delete_Sequenlist(Sequenlist *L,int i)
{
int j;
if(i<1||i>L->last+1)
{
printf("删除位置非法\n");
return 0;
}
for(j=i;j<L->last+1;j++)
L->data[j-1]=L->data[j];
L->last--;
return 1;
}