#include<stdio.h>
#include<stdlib.h>
typedef int datatype;
#define maxsize 100
typedef struct
{datatype list[maxsize];
int last;
}sqlist;
void Division(sqlist *L)//分割函数
{int i,j;
datatype x,y;
x=L->list[i];
for(i=1;i<=L->last;i++)
if(L->list[i]<x)
{y=L->list[i];
for(j=i-1;j>=0;j--)
L->list[j+1]=L->list[j];
L->list[0]=y;
}
}
void initlist(sqlist *L)//初始化
{
L->last=-1;
}
int insertlist(sqlist *L,int i,datatype x)//插入
{
int j;
if(L->last==maxsize-1)
{printf("表已满!");
return -1;
}
if(i<1||i>L->last+2)
{printf("插入位置非法!");
return 0;
}
for (j=L->last;j>=i-1;j--)
L->list[j+1]=L->list[j];
L->list[i-1]=x;
L->last++;
return 1;
}
void main()
{
int i;
datatype a[]={5,4,7,6,8,1,2,3};
sqlist L;
initlist(&L);
for(i=0;i<8;i++)
insertlist(&L,i+1,a[i]);
for(i=0;i<=L.last;i++)
printf("%4d",L.list[i]);
printf("\n");Division(&L);
for(i=0;i<=L.last;i--)
printf("%4d",L.list[i]);
printf("\n");
}
调试时无错误,无警告。运行时出错。