1、
//按值查找元素
int list_search_value(seqlistPtr S,datatype e)
{
if(NULL==S)
{
printf("查找失败\n");
return 0;
}
int flag=0;
for(int i=0;i<S->len;i++)
{
if(S->data[i] == e)
{
flag=1;
printf("%d\t%d\n",S->data[i],i);
}
}
if(flag==0)
{
printf("没有你要找的元素\n");
return 0;
}
}
2、//将顺序表排序,选则排序,1为升序,0为降序
void list_sort(seqlistPtr S,int flag)
{
if(NULL==S)
{
printf("排序失败\n");
return ;
}
int i,j,max,k,temp;
if(flag==0)
{
for(i=0;i<S->len;i++)
{
max=S->data[i];
k=i;
for(j=i;j<S->len;j++)
{
if(max<S->data[j])
{
max=S->data[j];
k=j;
}
}
temp=S->data[k];
S->data[k]=S->data[i];
S->data[i]=temp;
}
}
if(flag==1)
{
for(i=0;i<S->len;i++)
{
max=S->data[i];
k=i;
for(j=i;j<S->len;j++)
{
if(max>S->data[j])
{
max=S->data[j];
k=j;
}
}
temp=S->data[k];
S->data[k]=S->data[i];
S->data[i]=temp;
}
}
}
3、
//求最值
datatype list_mvalue(seqlistPtr S,int flag)
{
if(NULL==S)
{
printf("排序失败\n");
return 0;
}
int i,max=S->data[0];
if(flag==1) //求最大值
{
for(i=0;i<S->len;i++)
{
if(max<S->data[i])
{
max=S->data[i];
}
}
printf("最大值为%d\n",max);
}
if(flag==2) //求最小值
{
for(i=0;i<S->len;i++)
{
if(max>S->data[i])
{
max=S->data[i];
}
}
printf("最小值为%d\n",max);
}return 0;
}
4、//顺序表反转
void list_reverse(seqlistPtr S)
{
int j=S->len-1,i=0,temp;
while(i<j)
{
temp=S->data[i];
S->data[i]=S->data[j];
S->data[j]=temp;
i++;j--;
}
}