其他的不多说直接上干货!!!
#include
#include
# define max 10//看自己定义;
//定义一个顺序表;
typedef struct
{
/* data */
int data[max];
int last;
}seqlist;
//顺序表的初始化
seqlist *init_seqlist()
{
seqlist *L;
L=malloc(sizeof(seqlist));
int j,i;
scanf("%d",&j);
for(i=0;i
scanf("%d",&L->data[i]);
}
L->last=j-1;//last始终为其最后一个元素下标
return L;
}
//顺序表的插入;
int Insert_sqlist(seqlist *L,int i,int x)//i代表插入的顺序,x代表插入的数据,数据类型必须与定义顺讯表中数组的一致;
{
int j;
if(L->last==max-1)
{
printf("表满");
return (-1);
}
if(i<1||i>L->last+2)
{
printf("插入的位置不正确");
return (0);
}
for(j=L->last;j>=i-1;j--)
{
L->data[j+1]=L->data[j];//数据后移
}
L->data[i-1]=x;//将输入的数据放入对应的下标中
L->last++;
for(int k=0;k<=L->last;k++)
{
printf("%d ",L->data[k]);
}
printf("\n");
return 1;
}
//顺序表的删除;
int Delete_seqlist(seqlist *L,int i)
{
int j;
if(i<0||i>max-1)
{
printf("不存在该号元素");
return 0;
}
for(j=i;j<=L->last;j++)
{
L->data[j-1]=L->data[j];
}
L->last--;
for(int k=0;k<=L->last;k++)
{
printf("%d ",L->data[k]);
}
printf("\n");
return 1;
}
//按值查找;
int location_seqlist(seqlist *L,int k)
{
for(int i=0;i<=L->last;i++)
{
if(k==L->data[i])
{
printf("%d\n",L->data[i]);
return 1;
}
}
}
//顺序表的划分;
void Partition_seqlist(seqlist *L)
{
int x,y;
x=L->data[0];
for(int i=1;i<=L->last;i++)
{
if(L->data[i]
{
y=L->data[i];//将数据保存
for(int j=i-1;j>=0;j--)
{
L->data[j+1]=L->data[j];//数据后移
}
L->data[0]=y;//始终为将小于x=a[0]的数据提放值a[0]中
}
}
for(int i=0;i<=L->last;i++)
{
printf("%d ",L->data[i]);
}
}
int main()
{
seqlist *L;
L=init_seqlist();//顺序表的初始化,实现往顺序表中传入数值,并将last赋值为传入数据最后数组的下标
int i,x;//i代表插入的顺序,x代表插入的数据,数据类型必须与定义顺讯表中数组的一致;
scanf("%d %d",&i,&x);
int flag1;
flag1=Insert_sqlist(L,i,x);
int j,flag2;
scanf("%d",&j);//j代表着插入位置的数组下标
flag2=Delete_seqlist(L,j);
int k,flag3;
scanf("%d",&k);//k代表着按值查找的值
flag3=location_seqlist(L,k);
Partition_seqlist(L);//顺序表的划分;
return 0;
}
大佬勿喷学弟还会努力,你的鼓励是我最大的动力!!!!!!