将一个有序顺序表分裂成两个线性表,一个由奇数组成,一个由偶数组成
typedef struct _intData
{
int a[100];
int len;
}intData;
typedef struct _intlnk
{
int a;
_intlnk *next;
}intlnk,*pIntLnk;
pIntLnk AddNode(pIntLnk p,int n)
{
pIntLnk p1 = (pIntLnk)malloc(sizeof(intLnk));
p1.a = n;
p1.next = NULL;
if(p == NULL)
p = p1;
else
{
pIntLnk q = p;
while(q->next != NULL)
q = q->next;
q->next = p1;
}
return p;
}
void printLnk(pIntLnk p)
{
while(p != NULL)
{
printf("%d ",p->a;
p = p->next;
}
printf("\n");
}
int main()
{
pIntLnk p1=NULL,p2=NULL;
intData d;
scanf("%d",&d.len);
int i;
for(i=0;i<d.len;i++)
scanf("%d",&d.a[i]);
for(i=0;i<d.len;i++)
{
if(d.a[i]%2==0)
p1 = AddNode(p1,d.a[i]);
else
p2 = AddNode(p2,d.a[i]);
}
printLnk(p1);
printLnk(p2);
return 0;
}