顺序表应用-奇偶

 

01./*   
02.作者:王增亮   
03.完成日期:2015.9.21 
04.问题描述:顺序表应用 
05.*/


 

代码:

 

#include <stdio.h>
#include <malloc.h> 
typedef int ElemType;  
#define MaxSize 50
typedef struct  
{  
  ElemType data[MaxSize];  
   int length;  
} SqList;

//用数组创建线性表     
void CreateList(SqList *&L, ElemType a[], int n)    
{    
   int i;    
    L=(SqList *)malloc(sizeof(SqList));    
   for (i=0; i<n; i++)    
        L->data[i]=a[i];    
    L->length=n;    
}  
bool ListEmpty(SqList *L)    
{    
    return(L->length==0);    
}
void DispList(SqList *L)    
{    
    int i;    
    if (ListEmpty(L)) return;    
    for (i=0; i<L->length; i++)    
        printf("%d ",L->data[i]);    
    printf("\n");    
}
void move(SqList *&L)
{
    int i=0,j=L->length-1;
    ElemType tmp;
    while (i<j)
    {
        while ((i<j) && (L->data[j]%2==0))  //从右往左,找到第一个奇数(偶数就忽略不管)
            j--;
        while ((i<j) && (L->data[i]%2==1))  //从左往右,找到第一个偶数(奇数就忽略不管)
            i++;
        if (i<j)   //如果未到达“分界线”,将右边的奇数和左边的偶数交换
        {
            tmp=L->data[i];
            L->data[i]=L->data[j];
            L->data[j]=tmp;
        }
    }   //待循环上去后,继续查找,并在必要时交换
}


//用main写测试代码
int main()
{
    SqList *sq;
    ElemType a[10]= {5,8,7,0,2,4,9,6,7,3};
    CreateList(sq, a, 10);
    printf("操作前 ");
    DispList(sq);

    move(sq);

    printf("操作后 ");
    DispList(sq);
    return 0;
}


结果:

 

顺序表应用-奇偶_第1张图片

 

学习感受:到目前为止只会用VC编程,不会用CodeBlocks编代码,课后我会学习用CodeBlocks编程序的,跟上潮流!!

你可能感兴趣的:(顺序表应用-奇偶)