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;
}

pntia7-7 软硬车厢交替排列 (40 分)的更多相关文章

  1. 未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30a [问题点数:40分,结帖人u010259408]

    未能加载文件或程序集“Newtonsoft.Json, Version=4.0.0.0, Culture=neutral, PublicKeyToken=30a [问题点数:40分,结帖人u01025 ...

  2. 读“40 分,60 分,90 分”

    原文链接: http://mp.weixin.qq.com/s?__biz=MzA5MjYyNzY1OQ==&mid=2650901947&idx=1&sn=89af64d3b ...

  3. java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntim [问题点数:40分,结帖人wangxiaohua_001]

    14:56:10.093 WARN!! Error for /butterfly/plugins/zhonghang/UsefulData/save_usefuldata.bshjava.lang.N ...

  4. PAT 列车厢调度   (25分)(栈和容器的简单应用)

    1 ====== <--移动方向 / 3 ===== \ 2 ====== -->移动方向 大家或许在某些数据结构教材上见到过“列车厢调度问题”(当然没见过也不要紧).今天,我们就来实际操 ...

  5. Setting property 'source' to 'org.eclipse.jst.jee.server [问题点数:40分]

    链接地址:http://bbs.csdn.net/topics/390131469 警告: [SetContextPropertiesRule]{Context} Setting property ' ...

  6. 如何获取网页验证码图片并保存到本地(Java实现) [问题点数:40分,结帖人lanxuezaipiao]

    http://bbs.csdn.net/topics/390426978 public static String readCheckImage(HashMap<String, String&g ...

  7. 如何根据name和value选中radio [问题点数:40分,结帖人zzxap

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html>  <he ...

  8. 如何判断一条记录什么字段被修改了 [问题点数:40分,结帖人bluesukeke]

    查询出来数据,在数据集编辑状态下,如何判断一条记录被修改了,哪些字段被修改了. 可用adoquery的Delta屬性...eg: ClientDataSet1.Delta... PS:POST前是準確 ...

  9. JFreeChart框架中生成饼状图上怎样显示数据 [问题点数:40分,结帖人GreenLawn]

    我用JFreeChart框架生成饼状图,但想把数据信息在饼图上显示,是在饼图内部(即圆内)显示!怎样实现啊??  去掉lablepieplot.setLabelGenerator(null);去掉线p ...

  10. 用ClientDataSet更新数据表,怎样自动生成行号? [问题点数:40分]

    ClientDataSet.First;while not ClientDataSet.eof dobegin  ClientDataSet.edit;  ClientDataSet.FieldByN ...

随机推荐

  1. Vulnhub 靶场 LOOZ: 1

    Vulnhub 靶场 LOOZ: 1 前期准备: 靶机地址:https://www.vulnhub.com/entry/looz-1,732/ kali攻击机ip:192.168.147.190 靶机 ...

  2. vue super flow 多种形状

    1 <template> 2 <v-container class="workflow-container" grid-list-xl fluid> 3 & ...

  3. oracle WMSYS.WM_CONCAT 函数使用

    1.用法 WMSYS.WM_CONCAT(要连接的字段) 该函数返回来自同一个分组的指定字段的非NULL值的连接起来字符串,默认逗号连接,一般搭配分组函数使用 2.示例 select XFJ_ID,R ...

  4. CTreeCtrl中通过单击获取当前选项文本

    新建了一个NM_Click消息响应函数,用hParent = m_TreeCtrl.GetSelectedItem();m_TreeCtrl.GetItemText(hParent);获取当前选中的文 ...

  5. C#windows 服务 《转载》

    转自:https://blog.csdn.net/Code_May/article/details/123909870 c#应用Windows服务 背景 一.创建windows服务 1.创建windo ...

  6. Day 22 22.1:增量式爬虫

    Day 22 22.1:增量式爬虫 爬虫应用场景分类 通用爬虫 聚焦爬虫 功能爬虫 分布式爬虫 增量式爬虫: 用来监测网站数据更新的情况(爬取网站最新更新出来的数据). 只是一种程序设计的思路,使用什 ...

  7. Typora+PicGo+GitHub

    图片可以成功上传github,但是picgo相册无法预览,typora里也加载不出 image load failed 方法: 在`C:\Windows\System32\drivers\etc\ho ...

  8. IDEA2022 搭建SpringMVC

    https://blog.csdn.net/LiuNengJing/article/details/125888494

  9. svn批量忽略文件夹和批量忽略某种类型文件方法

    批量忽略文件夹: 最简单的方法:不勾选这个 1.在svn管理的根目录下点击右键---> TortoiseSVN --> properties 2.点击new-->other 3.在p ...

  10. Win10服务主机本地系统磁盘占用过高解决

    前言:发现电脑卡,磁盘被本地系统占用好多.把尝试过的方法都发一下. 1.尝试用了网上的关闭家庭组: win+R打开运行输入:services.msc  打开Windows服务管理器.找到HomeGro ...