您的位置:首页 > 其它

第三周 项目四 顺序表的应用2(。。)

2015-10-20 20:01 302 查看
/*
*Copyright (c)2015, 烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:Apply.cpp
*作    者:苏凯祺
*完成日期:2014年10月20号
*版 本 号:v1.0
*问题描述:将所有的奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
*/
list.h
#include<stdio.h>
#include<malloc.h>
#define MaxSize 50
typedef int ElemType;
typedef struct
{
ElemType data[20];
int length;
}SqList;
void CreateList(SqList *&L, ElemType a[], int n)  ;
void DispList(SqList *L);
bool ListEmpty(SqList *L)  ;
void move(SqList *&L);
list.cpp
#include"list.h"
void move(SqList *&L)
{int i,j=0,k=0;
for(i=0;i<L->length;i++)
{
if(L->data[i]%2==0)
{
L->data[10+j]=L->data[i];
j++;
}
if(L->data[i]%2==1)
{
L->data[k]=L->data[i];
k++;
}
}
for(i=k;i<10;i++)
L->data[i]=L->data[i+j];
}
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;
}
void DispList(SqList *L)
{
int i;
if (ListEmpty(L)) return;
for (i=0; i<L->length; i++)
printf("%d ",L->data[i]);
printf("\n");
}
bool ListEmpty(SqList *L)
{
return(L->length==0);
}
main.cpp
#include"list.h"
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;
}

运行结果:



知识点总结:

这里主要用了%来实现奇偶数的选择,然后用了删除函数的原理。

学习心得:

学习思维依旧有点繁琐,还需努力积累。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: