-
快速排序-(POJ)用队列对扑克牌排序
题目链接:用队列对扑克牌排序
-
思路
按题目要求是按花色递增(A,B,C,D),花色相同按点数递增
那么先对点数相同的进行归类,定义9个队列保存结果
再对花色归类,定义4个队列保存结果
-
代码
#include<iostream>
#include<queue>
using namespace std;
struct Puko
{
char Follower_color;
int Key;
};
int main()
{
int Card_Num;
char Poke_card[5];
Puko One_Puko;
queue<Puko> Store_Key[10]; //第一次点数排序存放队列
queue<Puko> Store_color[4]; //第二次花色排序存放队列
cin >> Card_Num;
for (int i = 1; i <= Card_Num; i++)
{
cin >> Poke_card;
One_Puko.Follower_color = Poke_card[0];
One_Puko.Key = Poke_card[1] - '0';
Store_Key[One_Puko.Key].push(One_Puko); //按点数入队
}
for (int i = 1; i <= 9; i++)
{
cout << "Queue" << i << ":";
while(!Store_Key[i].empty())
{