第三周项目4

来源:互联网 发布:加强网络舆情监测 编辑:程序博客网 时间:2024/06/05 06:49
/*烟台大学计算机学院  文件名称:main.cpp  作者:董玉祥 完成日期: 2017 9 24 问题描述:定义一个采用顺序结构存储的线性表,设计算法完成下面的工作:    1、删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1);    2、将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。 */
问题及代码:
1.
#include <iostream>#include "list.h"using namespace std;void deletexy(SqList *L,ElemType x,ElemType y){    int i;    int k=0;    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)        {            L->data[k]=L->data[i];            k++;        }    }    L->length=k;}int main(){    SqList *sq;    ElemType x[10]= {5,8,7,0,2,4,9,6,7,3};    CreateList(sq,x,10);    cout<<"删除前:"<<endl;    DispList(sq);    deletexy(sq,4,7);    cout<<"删除后"<<endl;    DispList(sq);    return 0;}
2.
#include <iostream>#include "list.h"using namespace std;void move(SqList *L){ int i=0;ElemType temp;int j=L->length;while(i<j){while((i<j)&&L->data[j]%2==0) //data[j] shijishuj--;while((i<j)&&L->data[i]%2!=0) //data[j]shioushui++;if(i<j){    temp=L->data[i];   L-> data[i]=L->data[j];    L->data[j]=temp;}}}int main(){    SqList *sq;    ElemType x[10]= {5,8,7,0,2,4,9,6,7,3};    CreateList(sq,x,10);    cout<<"操作前:"<<endl;    DispList(sq);    move(sq);    cout<<"操作后"<<endl;    DispList(sq);    return 0;}
运行结果截图:


原创粉丝点击