7-37 模拟EXCEL排序 (25分)--优先队列

Posted 2020r

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7-37 模拟EXCEL排序 (25分)--优先队列相关的知识,希望对你有一定的参考价值。

#include <iostream>
#include <queue>
#include <cstdio>
using namespace std;
int C;
int cmp(const char a[], const char b[])//比较字符串大小的函数
{
    for (int i = 0; i < 10; i++)
    {
        if (a[i] ==  || b[i] == )
            break;
        if (a[i] == b[i])
        {
            if (a[i] != )
                continue;
            else
                break;
        }
        else if (a[i] > b[i])
        {
            return 1;
        }
        else
            return -1;
    }
    return 0;
}
struct node//结构体定义
{
    char num[10];
    char name[10];
    int score;
    bool operator < (const struct node& a)const
    {
        if (C == 1)
        {
            return (cmp(num, a.num) == 1);
        }
        else if (C == 2)
        {
            if (cmp(name, a.name) == 0)
            {
                return (cmp(num, a.num) == 1);
            }
            else if (cmp(name, a.name) == 1)
                return true;
            else return false;
        }
        else if (C == 3)
        {
            if (score == a.score)
                return (cmp(num, a.num) == 1);
            else
                return score > a.score;
        }
    }
};
int main()
{
    priority_queue<struct node> q;
    int N;
    cin >> N >> C;
    for (int i = 0; i < N; i++)
    {
        struct node t_node;
        cin >> t_node.num >> t_node.name >> t_node.score;
        q.push(t_node);
    }
    while (!q.empty())
    {
        //cout << q.top().num << ‘ ‘ << q.top().name << ‘ ‘ << q.top().score << endl;
     //用cout会超时 printf("%s %s %d ", q.top().num, q.top().name, q.top().score); q.pop(); } return 0; }

 

以上是关于7-37 模拟EXCEL排序 (25分)--优先队列的主要内容,如果未能解决你的问题,请参考以下文章

7-26 Windows消息队列(25 分)(堆排序)

JS优先队列排序。出队时,先找出优先级最高的元素,再按照先进先出出队。

7-20 Windows消息队列 (25 分)(模拟水题)

1109 Group Photo (25 分)难度: 一般 / 知识点: 模拟 排序

1036 Boys vs Girls (25 分)难度: 简单 / 知识点: 模拟 排序

1153 Decode Registration Card of PAT (25 分)难度: 一般 / 知识点: 排序 模拟