第三周项目4—顺序表的应用(2)

Copyright (c) 2015,烟台大学计算机学院

All rights reserved,

文件名称:idea.cpp

作者:王阳

完成日期:2015年9月18日

01.#include "list.h"   
02.#include <stdio.h>   
03.  
04.//移动结束后,奇数居左,偶数居右   
05.void move(SqList *&L)  
06.{  
07.    int i=0,j=L->length-1;  
08.    ElemType tmp;  
09.    while (i<j)  
10.    {  
11.        while ((i<j) && (L->data[j]%2==0))  //从右往左,找到第一个奇数(偶数就忽略不管)   
12.            j--;  
13.        while ((i<j) && (L->data[i]%2==1))  //从左往右,找到第一个偶数(奇数就忽略不管)   
14.            i++;  
15.        if (i<j)   //如果未到达“分界线”,将右边的奇数和左边的偶数交换   
16.        {  
17.            tmp=L->data[i];  
18.            L->data[i]=L->data[j];  
19.            L->data[j]=tmp;  
20.        }  
21.    }   //待循环上去后,继续查找,并在必要时交换   
22.}  
23.  
24.  
25.//用main写测试代码   
26.int main()  
27.{  
28.    SqList *sq;  
29.    ElemType a[10]= {5,8,7,0,2,4,9,6,7,3};  
30.    CreateList(sq, a, 10);  
31.    printf("操作前 ");  
32.    DispList(sq);  
33.  
34.    move(sq);  
35.  
36.    printf("操作后 ");  
37.    DispList(sq);  
38.    return 0;  
39.}  
第三周项目4—顺序表的应用(2)_第1张图片

你可能感兴趣的:(第三周项目4—顺序表的应用(2))