zoukankan      html  css  js  c++  java
  • 队列、链队

    舞伴问题

    先入队的男士或女士先出队配成舞伴,因此设置两个队列分别存放男士和女士,假设男士和女士的记录存放在一个数组中

    依次扫描该数组的元素并根据性别来决定入男队还是女队。队列构造完成之后分别配成舞伴出队,直至某队为空。此时,若

    某队仍有等待者,则输出此队列排在对头的等待着姓名,此人是下一轮舞曲开始时的第一个可获得舞伴的人。

    舞者信息:

    初始化

    入队和出队

    寻找队头的舞者:

    判断是否为空队列

    获取舞者记录:

    舞者配对:

    void DancePartner(Person dancer[], int num)
    {
        SqQueue Mdancers, Fdancers;
        Person p;
        InitQueue(Mdancers);
        InitQueue(Fdancers);
        for (int i = 0; i < num; i++)
        {
            p = dancer[i];
            if (p.sex == 'F')
                EnQueue(Fdancers, p);
            else EnQueue(Mdancers, p);
        }
        cout << "The dancing partners are:
    ";
        while (!QueueEmpty(Fdancers) && !QueueEmpty(Mdancers))
        {
            DeQueue(Mdancers, p);
            cout << p.name << "  ";
            DeQueue(Fdancers, p);
            cout << p.name << endl;
        }
        if (!QueueEmpty(Fdancers))
        {
            p = GetHead(Fdancers);
            cout << "The first woman to get a partner is:" << p.name << endl;
        }
        else if (!QueueEmpty(Mdancers))
        {
            p = GetHead(Mdancers);
            cout << "The first man to get a partner is:" << p.name << endl;
        }
    }

    测试:

    结果:

  • 相关阅读:
    HTTP-接触
    什么是虚拟机-粗略学习
    jQuery中的动画理论干货
    jQuery-中的事件
    熟悉又陌生的快捷方式
    jQuery中的DOM操作
    jQuery与javascript库
    jQuery-选择器(2)
    jest操作 Elasticsearch
    配置 Kibana
  • 原文地址:https://www.cnblogs.com/cjwen/p/10666287.html
Copyright © 2011-2022 走看看