第三周 项目四 顺序表的应用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; }
运行结果:
知识点总结:
这里主要用了%来实现奇偶数的选择,然后用了删除函数的原理。
学习心得:
学习思维依旧有点繁琐,还需努力积累。
相关文章推荐
- Web开发人员常犯的10个错误
- iOS开发之c语言基础-动态内存分配与管理
- C# web api返回类型设置为json的两种方法
- Vim个人手册(持续更新)
- WebService原理
- 多线程
- linux0.99网络模块-传输层(UDP接收)
- 未选择的路
- c# 读取xml常用方法
- 电工作业常用导电材料
- Windows下配置nginx+php(wnmp)
- hdoj Equivalent Sets 3836 (强连通分量 最少添加几条边使图强连通)
- iOS内存管理---block机制详解
- IOS开发证书配置问题总结
- JVM疑难启动参数汇总
- GridView单选/多选模式
- sql server之索引的查询路径
- 【软剑攻城队】用户界面设计原型文档发布!
- 安卓UI自适应性
- 工作中遇到ListView和ScrollView的冲突