小猫钓鱼———队列与栈的结合

编程入门 行业动态 更新时间:2024-10-07 12:23:27

<a href=https://www.elefans.com/category/jswz/34/1765683.html style=小猫钓鱼———队列与栈的结合"/>

小猫钓鱼———队列与栈的结合

小猫钓鱼-----队列与栈的结合
问题描述
星期天xiaoheng和xiaoha约在一起玩桌游,他们正在玩一个非常古怪的扑克游戏–“小猫钓鱼”
游戏的规则是这样的:将一副扑克牌平均分成两份,每人拿一份。xiaoheng先拿出手中的第一张扑克牌放在桌上,然后xiaoha也拿出手中的第一张扑克牌,并放在xiaoheng刚打出的扑克牌上面,就像这样两人交替出牌。出牌时,如果某人打出的牌与桌上的牌面相同,即可将两张相同的牌及其中间所夹的牌全部取走,并依次放到自己手中牌的末尾。当任意一人手中的牌全部出完时,游戏结束,对手获胜。
假如游戏开始时,xiaoheng手中有6张牌,顺序为2 4 1 2 5 6,xiaoha手中有6张牌,顺序为3 1 3 5 6 4
最终谁会获胜呢?现在你可以拿出来试一试。
接下来请你写一个程序来自动判断谁将获胜。这里我们做一个约定,xiaoheng和xiaoha手中拍的牌面只有1~9。
输入
只有两行数,每行6个数字(1~9)
输出
第一行:获胜者的名字xiaoha或xiaoheng
第二行:获胜者手里的牌
第三行:桌面剩下的牌
样例输入
2 4 1 2 5 6
3 1 3 5 6 4
样例输出
xiaoha
1 6 5 2 3 4 1
3 4 5 6 2

#include<iostream>
#include<queue>
using namespace std;
int main()
{queue<int> xheng;//定义xiaoheng的队列queue<int> xha;//定义xiaoha的队列int a,temp[100000],c=0;//定义桌面栈for(int i=1;i<=6;i++){cin>>a;xheng.push(a);//将牌依次放入xiaoheng的队列中}for(int i=1;i<=6;i++){cin>>a;xha.push(a);//将牌依次放入xiaoha的队列中}while(!xheng.empty()&&!xha.empty())//只要其中一人队列不为空就继续循环{// xiaoheng出牌 //int t1;t1=xheng.front();//取xiaoheng队首元素xheng.pop();//将xiaoheng队首元素弹出temp[++c]=t1;//将队首元素放入桌面栈中int size=c-1;for(int i=1;i<=size;i++)//从队首开始遍历至队尾之前的元素{if(temp[i]==t1)//如果栈中有相同的元素for(int j=size+1;j>=i;j--){xheng.push(temp[c--]);//从次此元素开始至栈顶依次全部放入xiaoheng的队尾temp[c+1]=0;//将栈中弹出的元素标记为0}}if(xheng.empty())//此时如果xiaoheng的队列为空,跳出循环{                           //否则让xiaoha出牌break;}// xiaoha出牌 //int t2; //xiaoha出牌方式与xiaoheng一样不在赘述t2=xha.front();xha.pop();temp[++c]=t2;size=c-1;for(int i=1;i<=size;i++){if(temp[i]==t2)for(int j=size+1;j>=i;j--){xha.push(temp[c--]);temp[c+1]=0;}}if(xha.empty()){break;}}if(xheng.empty()) //判断如果xiaoheng队列为空则xiaoha赢{cout<<"xiaoha"<<endl;int size1=xha.size();for(int i=1;i<=size1;i++) //遍历输出xiaoha队列元素{cout<<xha.front()<<' ';xha.pop();}}else if(xha.empty()) 判断如果xiaoha队列为空则xiaoheng赢{cout<<"xiaoheng"<<endl;int size1=xheng.size();for(int i=1;i<=size1;i++) //遍历输出xiaoheng队列元素{cout<<xheng.front()<<' ';xheng.pop();}}cout<<endl;for(int i=1;i<=c;i++) //遍历输出桌面栈中元素{cout<<temp[i]<<' ';}cout<<endl;
}

更多推荐

小猫钓鱼———队列与栈的结合

本文发布于:2024-02-19 19:14:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1765485.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:小猫   队列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!