/*
copyright (t) 2016,烟台大学计算机学院
*All rights reserved.
*文件名称:1.cpp
*作者:邵雪源
*完成日期:2017年9月19日
*版本号:v1.0
*问题描述:将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。
*输入描述:线性表长度、线性表中各元素
*程序输出:调整顺序后的线性表
*/
#include <iostream>
#include <malloc.h>
#include <cstdio>
using namespace std;
#define Maxsize 100
typedef int Elemtype;          //自定义数据类型
typedef struct list
{Elemtype data[Maxsize];    //存顺序表元素int length;                //存顺序表长度
} Sqlist;
void CreateList(Sqlist *&l,Elemtype a[],int n)    //由a中的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;for(i=0;i<l->length;i++)printf("%d ",l->data[i]);printf("\n");
}
void movejs(Sqlist *&l)                           //移动奇数
{int i=0,j=l->length-1;Elemtype t;while (i<j){while ((i<j) && (l->data[j]%2==0))         //从右往左遍历找第一个奇数j--;while ((i<j) && (l->data[i]%2==1))         //从左往右遍历找第一个偶数i++;if (i<j)                                   //如果未到达“分界线”,将上述循环中找到的奇数和偶数交换{t=l->data[i];l->data[i]=l->data[j];l->data[j]=t;}}
}int main()
{int i,Llength;Sqlist *l;Elemtype a[Maxsize];printf("请输入线性表长度:\n");scanf("%d",&Llength);printf("请输入线性表中各元素:\n");for(i=0;i<Llength;i++)scanf("%d",&a[i]);CreateList(l,a,Llength);movejs(l);DispList(l);return 0;
}                     //移动奇数

第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面相关推荐

  1. 数据结构上机实践第三周项目2 - 建设“顺序表”算法库

    [项目2 - 建设"顺序表"算法库]  领会"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库.这一周,建的是顺序表的算法库.  算法库包括两 ...

  2. 数据结构上机实践第三周项目4(2)—顺序表应用

    [项目 - 顺序表应用] 定义一个采用顺序结构存储的线性表,设计算法将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1). 项目中用到的算法库为list.cpp和list ...

  3. 第3周 实践项目2 建设”顺序表“算法库(可参考为模板)

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2 -建设"顺序表算法库" *作 者:邵雪源 ...

  4. 数据结构上机时间第三周项目4(1)—顺序表应用

    [项目 - 顺序表应用]  定义一个采用顺序结构存储的线性表,设计算法完成删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1) : 项目中用到的算法库为list. ...

  5. 数据结构上机实践第三周项目3- 求集合并集

    [项目 - 求集合并集] 假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员.设计算法,用函数unionList(List LA, List LB ...

  6. 数据结构上机实践第三周项目1

    本次实践目的:实现顺序表基本运算有算法依据"最小化"的原则进行测试.目的是要测试"建立线性表"的算法CreateList,为查看建表的结果,需要实现" ...

  7. 第三周项目4顺序表应用2 删除元素在[x,y]之间的所有元素

    /* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目4 -删除元素在[x,y]之间的所有元素" *作 者: ...

  8. 数据结构笔记(三)-- 链式实现顺序表

    带有头结点的单链表的实现 一.链表概述 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 二.线性表的单链表存储数据 以存储数据为整型为例 typ ...

  9. 第三周项目3-程序的多文件组织

    利用多文件组织,重新实现项目2.其中,整个项目包括3个文件: 主文件: main.cpp,用于定义main()函数 头文件: triangle.h,头文件,声明类,定义内置成员函数 类定义文件: tr ...

最新文章

  1. 、PHP只能访问mysql_php中 mysql函数不能调用,只有mysql_query()可以用
  2. 每个人应该知道的NVelocity用法
  3. 未解决ora-01034、ora-03113、oracle使用RMAN删除归档日志
  4. Alaya Webdav Server 0.0.10 发布
  5. 9.2-控制单元CU的功能(学习笔记)
  6. jdbc操作mysql数据库_JDBC操作MySQL数据库(一)
  7. Cannot resolve symbol 'R',Failed to resolve: constraint-layout
  8. 玩个锤子,李飞飞夫妇团队的最新研究
  9. 物联网市场潜力巨大,中国移动加强布局
  10. 【图文详解】入职必备——SVN使用教程
  11. picasa图片编辑器_如何将iPhone图片和电影导入Picasa
  12. 二极管的作用原理及特性
  13. Qt软件开发交流群分享
  14. Python把视频转为 gif 图片——视频制作利器:MoviePy
  15. 命令 修复损坏的 Ubuntu 系统 ,不用重装
  16. BFC是什么?BFC的四种理解方式
  17. 忆阻器交叉开关阵列中的长短期记忆(LSTM)神经网络
  18. 053试题 334/682 - crosscheck
  19. oracle For循环和触发器Tigger
  20. 监督学习和无监督学习概念

热门文章

  1. Power-- 1.charge Fuel gauge
  2. 代码Overlay机制
  3. NKStartup的参数KData
  4. 极客编程日历桌面版for mac开发笔记[swift]
  5. 使用windows调用Linux远程桌面
  6. 《PHP和MySQL Web开发从新手到高手(第5版)》一2.9 删除存储的数据
  7. 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息...
  8. Bootstrap 手风琴搭配导航条实现常用菜单栏
  9. wpa_supplicant与kernel的接口
  10. MySQL Fabric 套件,提供自动故障检测和故障转移