顺序表的程序!大家一起来写一下!
将顺序表(a1,a2,a3.....,an)重新排列为以a1为界的两部分:a1前面的值均比a1,小,a1,后面的值都比a1,大具体算发如下
void part(seqlist *L)
{int i,j;
datatype x,y;
x=L->data[0];
for(i=1;i<=L->last; i++)
if(L->data[i]<x)
{y=L->data[i]<x)
for(j=i-1;j>=0;j--)
L->data[j+1]=L->data[j];
L->data[0]=y
}
}
请大家帮忙写以下
}
搜索更多相关的解决方案:
顺序
----------------解决方案--------------------------------------------------------
#include<stdio.h>
#define NUM 10
typedef struct
{
double data[NUM];
int last;
} seqlist;
void part(seqlist *L);
main( )
{ int i;
seqlist my,*p=&my;
p->last = NUM-1;
printf("input %d double(s)...\n",NUM);
for(i=0;i<NUM;i++)
scanf("%lf",&p->data[i]);
part(p);
printf("after parting...\n");
for(i=0;i<NUM;i++)
printf("%.2lf ",my.data[i]);
printf("\n");
scanf("%*c");
}
void part(seqlist *L)
{ int i,j;
double x,y;
x=L->data[0];
for(i=1;i<=L->last;i++)
if(L->data[i]<x)
{ y=L->data[i];
for(j=i-1;j>=0;j--)
L->data[j+1]=L->data[j];
L->data[0]=y;
}
}
----------------解决方案--------------------------------------------------------