pntia7-7 软硬车厢交替排列 (40 分)
2024-09-08 19:27:04
7-7 软硬车厢交替排列 (40 分)
设车辆厂生产了硬座车厢和软座车厢共n节(混合在一起),要求使用队列的基本操作,编程实现所有硬座车厢和所有软座车厢交替排列。
例如硬座车厢用H来表示,软座车厢用S来表示,
从键盘上输入8节车厢代号为SHHSSHSS ,输出为HSHSHSSS。
若从键盘输入8节车厢代号为SHHSHHSH ,输出为HSHSHSHH。
输入格式:
第一行输入硬座和软座车厢共有的节数,2<=节数<=10; 第二行按节数输入车厢代号。
输出格式:
若车厢节数超出合法范围,输出“ERROR”,否则输出H和S车厢交替排列结果,注意输出结果以H开头。
输入样例:
8
SHHSSHSS
输出样例:
HSHSHSSS
AC代码
#include<iostream>
using namespace std;
struct Queue
{
char *data;
int top;
int base;
};
int InitQueue(Queue &Q)
{
Q.data = new char[10];
Q.top = 0;
Q.base = 0;
return 1;
}
int QueueLength(Queue &Q) //队列长度
{
return (Q.top-Q.base);
}
int EnQueue(Queue &Q,char a) //入队
{
Q.data[Q.top++]=a;
return 1;
}
char DeQueue(Queue &Q)//出队
{
return Q.data[Q.base++];
}
int main()
{
Queue qh;
Queue qs;
InitQueue(qh);
InitQueue(qs);
int num;
cin>>num;
if(num>10||num<2){ //非法结束
cout<<"ERROR"<<endl;
return 0;
}
char ch[50];
cin>>ch;
for (int i = 0; i < num; i++)//H S 分别入队
{
if(ch[i]=='H') EnQueue(qh,ch[i]);
else EnQueue(qs,ch[i]);
}
while (qs.base!=qs.top && qh.base!=qh.top)
{
cout<<DeQueue(qh)<<DeQueue(qs);//同时输出
}
if(qs.base==qs.top){ //更长的队输出
while (qh.base!=qh.top)
{
cout<<DeQueue(qh);
}
}
else{
while (qs.base!=qs.top)
{
cout<<DeQueue(qs);
}
}
cout<<endl;
return 0;
}
最新文章
- iOS网络监测方法
- Atitit.&#160;Atiposter&#160;发帖机&#160;新特性&#160;poster&#160;new&#160;feature&#160;&#160;&#160;v7&#160;q39
- AC日记——阶乘之和 洛谷 P1009(高精度)
- 序列GCD和问题(题目)
- [C/C++]C++标准中的名词
- frequentism-and-bayesianism-chs-iv
- CentOS7修改服务器主机名方法
- html5的一些表单属性
- ubuntu14_gtk 安装
- PAT 1003. Emergency (25)
- CPU与外设传送数据方式
- 最常用的Eclipse快捷键【转载】
- APP分享抓取网页图片
- Cordova/Ionic Android 开发环境搭建 - Windows系统
- C语言链表:删除有序链表中大于mink小于maxk的元素
- deepin下codeblocks更改调试终端
- CSS样式学习-2
- log4jdbc 与 logback 集合打印日志过多的解决
- iOS刻度尺换算之1mm等于多少像素理解
- Java+Oracle实现事务——JDBC事务
热门文章
- Fiddle 简单用法
- 记录自己在对订单进行按日期查询时使用的一种查询的方法,这里的orders是订单表,你也可以改成别的什么表对于最终数据不会造成影响,除非你那个表的数据只有几条那样就会出现查不到日期的情况
- 5-6:实现多窗口之异常(AttributeError: &#39;list&#39; object has no attribute &#39;click&#39;)
- 运用python中装饰器方法来解决工作中为原有代码添加功能问题
- vue- cube-scroll踩坑记
- .net基础—委托和事件
- 1238. 循环码排列 (Medium)
- python生成随机中文姓名和拼音
- nuxt项目中使用store
- 使用CefSharp获取A标签中的内容