第三周-项目4

来源:互联网 发布:yoo桌面软件 编辑:程序博客网 时间:2024/06/13 09:17

#include"list.h"
#include<iostream>
using namespace std;
void delx2y(SqList *&L, ElemType x,  ElemType y)
{
    int k=0,i; //k记录非x的元素个数
    ElemType t;
    if(x>y)
    {
        t=x;
        x=y;
        y=t;
    }
    for (i=0; i<L->length; i++)
        if (L->data[i]<x || L->data[i]>y )  //复制不在[x, y]之间的元素
        {
            L->data[k]=L->data[i];
            k++;
        }
    L->length=k;
}
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;
        }
    }   //待循环上去后,继续查找,并在必要时交换
}


int main()
{
 SqList *sq;
 ElemType a[10]={0,1,5,6,9,14,15,4,7,10},x,y;
 CreateList(sq,a,10);
 cin>>x>>y;
 move(sq);
 DispList(sq);
 delx2y(sq,x,y);
 
 DispList(sq);
 return 0;

}

0 0
原创粉丝点击