第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面
2016-09-22 11:03
211 查看
问题及代码:
list.h:
fun.cpp:
main.cpp:
运行结果:
知识点总结:
顺序表基本运算的应用
心得体会:
结合参考解答及课本例题中的内容,对算法的分析能力有所提高,有效巩固了相关知识点。
/* copyright (t) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:1.cpp *作者:车金阳
*完成日期:2016年9月22日 *版本号:v1.0 *问题描述:将所在奇数移到所有偶数的前面,要求算法的时间复杂度为O(n),空间复杂度为O(1)。 *输入描述:线性表长度、线性表中各元素 *程序输出:调整顺序后的线性表 */
list.h:
#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个元素建立顺序表 void DispList(Sqlist *l); //输出线性表 void movejs(Sqlist *&l); //移动奇数
fun.cpp:
#include <stdio.h> #include <malloc.h> #include "list.h" 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; } } }
main.cpp:
#include <iostream> #include <malloc.h> #include <cstdio> #include "list.h" using namespace std; 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-顺序表应用 将所有奇数移到偶数前面
- 第三周项目4-顺序表应用 将所有奇数移到偶数前面
- 第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面
- 第三周项目4(2)-顺序表应用 将所有奇数移到所有偶数前面
- 第三周项目4 顺序表应用(将所有奇数移到偶有偶数前面)
- 第3周项目4-顺序表应用(2)将所在奇数移到所有偶数的前面.
- 第三周项目4-顺序表应用1-删除元素在【X,Y】之间的所有元素
- 第三周项目4顺序表应用2 删除元素在[x,y]之间的所有元素
- 第三周项目4(2)奇数移到偶数前面
- 第三周项目四(2) 奇数移动到偶数前面
- 第三周项目4-将顺序表中的奇数移动到偶数的前面
- 第三周 项目4-顺序表应用2
- 第三周项目--顺序表的应用(奇数在前偶数在后)
- 第三周—项目4 顺序表应用
- 第三周——【项目4 - 顺序表应用】
- 调整数组使奇数全部都位于偶数前面。 题目: 输入一个整数数组,实现一个函数,来调整该数组中数字的顺序使得数组中所有的奇数位于数组的前半部分,所有偶数位于数组的后半部分。
- 第三周项目4 顺序表应用
- 将链表中的所有元素为奇数的节点移到元素为偶数节点的前面,并保证奇数之间顺序不变,偶数之间顺序不变。
- 第三周——【项目 - 顺序表应用】
- 第三周 项目4-顺序表应用1