7-2 数组循环左移(20分)(顺序表实现)
题目描述:
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0 a1 … an-1)变换为(am…an-1 a0 a1…am-1)(最前面的m个数循环移至最后面的m个位置)。如果还需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?
输入格式:
输入第1行给出正整数n(≤100)和整数m(≥0);第2行给出n个整数,其间以空格分隔。
输出格式:
在一行中输出循环左移m位以后的整数序列,之间用空格分隔,序列结尾不能有多余空格。
输入样例:
8 3
1 2 3 4 5 6 7 8
输出样例:
4 5 6 7 8 1 2 3
本题思路:
利用顺序表的插入、删除算法实现位移。
#include<iostream>
#include<cstdio>
#define Max 101
using namespace std ;
class Cycle
{int list[Max] = {0} ;int length ;public :Cycle( int l ) : length(l) {} void Creat (){for ( int i = 0 ; i < length ; i++ ){cin >> list[i] ;}}void Traverse ( int q ) {int num = 0 ;while ( q-- ){int t = list[0] ;for ( int i = 0 ; i < length - 1 ; i++ ){list[i] = list[i+1] ;}list[length - 1] = t ;num++ ; }}void Show (){for(int i = 0 ; i < length ; i++ ){if ( i == 0 ) //此处加一个判断 cout << list[i] ;else cout << ' ' << list[i] ;} }
} ; //类后加;(分号)
int main ()
{int m ; //输入长度 cin >> m ;Cycle c1( m ) ; //返回长度 int n ;cin >> n ;c1.Creat() ; //输入数组 c1.Traverse( n ) ; //遍历 c1.Show() ;return 0 ;
}
注意:
注意:PTA上格式错误:说明输出结果与题目输出样例存在差异
数组输出时要参考英语句子输出原理,也就是第一个单词前面没有空格,或最后一个单词后面没有空格
7-2 数组循环左移(20分)(顺序表实现)相关推荐
- 浙江大学PTA 数据结构 习题2.2 数组循环左移 (20 分)
本题要求实现一个对数组进行循环左移的简单函数:一个数组a中存有n(>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向左移m(≥0)个位置,即将a中的数据由(a0a1⋯an ...
- 7-31 字符串循环左移 (20 分)
7-31 字符串循环左移 (20 分) 输入一个字符串和一个非负整数N,要求将字符串循环左移N次. 输入格式: 输入在第1行中给出一个不超过100个字符长度的.以回车结束的非空字符串:第2行给出非负整 ...
- PTA-6-1 数组循环右移 (20分)(C语言)
函数接口定义: int ArrayShift( int a[], int n, int m ); 其中a[]是用户传入的数组:n是数组的大小:m是右移的位数.函数ArrayShift须将循环右移后的数 ...
- 习题3.12 另类循环队列 (20 分)
习题3.12 另类循环队列 (20 分) 如果用一个循环数组表示队列,并且只设队列头指针Front,不设尾指针Rear,而是另设Count记录队列中元素个数.请编写算法实现队列的入队和出队操作. 函数 ...
- 习题1.9 有序数组的插入 (20 分)
习题1.9 有序数组的插入 (20 分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementTy ...
- 6-2 有序数组的插入 (20分)
6-2 有序数组的插入 (20分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementType ...
- 算法 - 数组循环左移m个元素
题目 整数数组,n个元素 数组循环左移m个元素 [1,2,3,4,5,6,7,8,9] -> [4,5,6,7,8,9,1,2,3] 思路 数组整体逆转 [1,2,3,4,5,6,7,8,9] ...
- 长度为n的整数数组循环左移右移m位
长度为n的整数数组循环左移m位 右移m相当于左移n-m // pat.cpp : Defines the entry point for the console application. //#inc ...
- 浙大版《数据结构(第2版)》题目集 习题1.9 有序数组的插入 (20 分) 二分解法
习题1.9 有序数组的插入 (20 分) 本题要求将任一给定元素插入从大到小排好序的数组中合适的位置,以保持结果依然有序. 函数接口定义: bool Insert( List L, ElementTy ...
最新文章
- linux kill命令
- IntPtr to bytes
- 笔记一:python安装和执行
- css-modules 简介
- 论大型信息系统集成项目的成本管理
- 【转】新浪微博手机客户端刷新都是手动刷新或者下拉刷新,为什么不设计成自动刷新?...
- sql中的where 1=1有什么用?
- 摆脱困境:将环境特定的Cron表达式与@Scheduled批注一起使用
- 注解动态赋值_Java注解是如何玩转的,面试官和我聊了半个小时
- c# 中关键字_C#中的“使用”关键字
- python 生成 和 加载 requirements.txt
- yii2 关系...
- mysql 页 存储,MySQL InnoDB Engine--数据页存储和UPDATE操作
- ,PLCSIM、SIMIT、Amesim、NX MCD、 Process Simulate、Plant Simulation,一文带你了解西门子整个虚拟调试与仿真软硬件体系
- Cron在线表达式生成器
- (曲率系列4:)基于点拟合二次曲面并求曲率
- visio指向插图任意位置和任意改变箭头形状
- 三相PWM整流器滞环电流控制仿真
- 【vbers】ibv_post_send|IBV_SEND_SOLICITED|RDMA
- 快捷截图、标注和取色的小工具snipaste
热门文章
- nginx log记录请求响应日志及日志分割
- 记一次关于mock Systemc.currentTimeMillis的实践
- 多图 | 操作系统中,进程与线程怎么设计的?
- 美团/力扣(647)--回文字串
- 理查德·汉明和他的汉明码
- 音视频技术开发周刊 | 172
- SVT-AV1:开源编解码最新进展
- linux虚拟机克隆
- Redis java API ——Jedis的使用
- springcloud——eureka小错误Caused by: java.net.UnknownHostException: eureka7003.com