顺序表应用-奇偶

来源:互联网 发布:数据库查找 编辑:程序博客网 时间:2024/05/16 05:00

 

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


 

代码:

 

#include <stdio.h>#include <malloc.h> typedef int ElemType;  #define MaxSize 50typedef 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;}


结果:

 

 

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

0 0