第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面
/*
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)-顺序表应用 将所有奇数移到所有偶数前面相关推荐
- 数据结构上机实践第三周项目2 - 建设“顺序表”算法库
[项目2 - 建设"顺序表"算法库] 领会"0207将算法变程序"部分建议的方法,建设自己的专业基础设施算法库.这一周,建的是顺序表的算法库. 算法库包括两 ...
- 数据结构上机实践第三周项目4(2)—顺序表应用
[项目 - 顺序表应用] 定义一个采用顺序结构存储的线性表,设计算法将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1). 项目中用到的算法库为list.cpp和list ...
- 第3周 实践项目2 建设”顺序表“算法库(可参考为模板)
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目2 -建设"顺序表算法库" *作 者:邵雪源 ...
- 数据结构上机时间第三周项目4(1)—顺序表应用
[项目 - 顺序表应用] 定义一个采用顺序结构存储的线性表,设计算法完成删除元素在[x, y]之间的所有元素,要求算法的时间复杂度为O(n),空间复杂度为O(1) : 项目中用到的算法库为list. ...
- 数据结构上机实践第三周项目3- 求集合并集
[项目 - 求集合并集] 假设有两个集合 A 和 B 分别用两个线性表 LA 和 LB 表示,即线性表中的数据元素即为集合中的成员.设计算法,用函数unionList(List LA, List LB ...
- 数据结构上机实践第三周项目1
本次实践目的:实现顺序表基本运算有算法依据"最小化"的原则进行测试.目的是要测试"建立线性表"的算法CreateList,为查看建表的结果,需要实现" ...
- 第三周项目4顺序表应用2 删除元素在[x,y]之间的所有元素
/* *Copyright (c) 2017,烟台大学计算机与控制工程学院 *All rights reserved. *文件名称:项目4 -删除元素在[x,y]之间的所有元素" *作 者: ...
- 数据结构笔记(三)-- 链式实现顺序表
带有头结点的单链表的实现 一.链表概述 链表是一种物理存储单元上非连续.非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的. 二.线性表的单链表存储数据 以存储数据为整型为例 typ ...
- 第三周项目3-程序的多文件组织
利用多文件组织,重新实现项目2.其中,整个项目包括3个文件: 主文件: main.cpp,用于定义main()函数 头文件: triangle.h,头文件,声明类,定义内置成员函数 类定义文件: tr ...
最新文章
- 、PHP只能访问mysql_php中 mysql函数不能调用,只有mysql_query()可以用
- 每个人应该知道的NVelocity用法
- 未解决ora-01034、ora-03113、oracle使用RMAN删除归档日志
- Alaya Webdav Server 0.0.10 发布
- 9.2-控制单元CU的功能(学习笔记)
- jdbc操作mysql数据库_JDBC操作MySQL数据库(一)
- Cannot resolve symbol 'R',Failed to resolve: constraint-layout
- 玩个锤子,李飞飞夫妇团队的最新研究
- 物联网市场潜力巨大,中国移动加强布局
- 【图文详解】入职必备——SVN使用教程
- picasa图片编辑器_如何将iPhone图片和电影导入Picasa
- 二极管的作用原理及特性
- Qt软件开发交流群分享
- Python把视频转为 gif 图片——视频制作利器:MoviePy
- 命令 修复损坏的 Ubuntu 系统 ,不用重装
- BFC是什么?BFC的四种理解方式
- 忆阻器交叉开关阵列中的长短期记忆(LSTM)神经网络
- 053试题 334/682 - crosscheck
- oracle For循环和触发器Tigger
- 监督学习和无监督学习概念
热门文章
- Power-- 1.charge Fuel gauge
- 代码Overlay机制
- NKStartup的参数KData
- 极客编程日历桌面版for mac开发笔记[swift]
- 使用windows调用Linux远程桌面
- 《PHP和MySQL Web开发从新手到高手(第5版)》一2.9 删除存储的数据
- 海洋女神建新installshield交流群了,原来的老群都满了,请加新群哦,记得认真填写验证信息...
- Bootstrap 手风琴搭配导航条实现常用菜单栏
- wpa_supplicant与kernel的接口
- MySQL Fabric 套件,提供自动故障检测和故障转移