顺序表的操作
- 按值修改
int seq_gai(seq p,int num,int num1)
{
if(p==NULL)
{
return -1;
}
int i,flag=0;
for(i=0;i<p->len;i++)
{
if(p->data[i] == num)
{
p->data[i]=num1;
flag++;
}
}
if(!flag)
{
printf("没有找到!\n");
return -1;
}
}
- 去重
int seq_samedata(seq p)
{
if(p==NULL)
{
return -1;
}
int i,j,z;
for(i=0;i<p->len;i++)
{
for(j=i+1;j<p->len;j++)
{
if(p->data[j] == p->data[i])
{
for(z=j;z<p->len-1;z++)
{
p->data[z]=p->data[z+1];
}
p->len--;
j--;
}
}
}
}
- 冒泡排序升序
int seq_sort_maopao(seq p)
{
if(p==NULL)
{
return -1;
}
int i,j,temp;
for(i=1;i<p->len;i++)
{
for(j=0;j<p->len-1;j++)
{
if(p->data[j]>p->data[j+1])
{
temp=p->data[j];
p->data[j]=p->data[j+1];
p->data[j+1]=temp;
}
}
}
}
- 选择排序降序
int seq_sort(seq p)
{
if(p==NULL)
{
return -1;
}
int i, j, index, temp;
for(i=1;i<p->len;i++)
{
index = i-1;
for(j=i-1;j<p->len;j++)
{
if(p->data[index]<p->data[j])
{
index=j;
}
}
if(index!=i-1)
{
temp = p->data[index];
p->data[index]=p->data[i-1];
p->data[i-1] = temp;
}
}
}