zoukankan      html  css  js  c++  java
  • 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; }
  • 相关阅读:
    推销员问题
    string类实现
    链表倒数第k个节点
    设计模式之单例模式大全
    空类 sizeof 为什么是1
    类的三种继承方式
    单例模式典型创建方法(三种)
    虚函数实现
    链表删除结点
    TCP的状态转移
  • 原文地址:https://www.cnblogs.com/2020R/p/12770856.html
Copyright © 2011-2022 走看看