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;
        }
    }

    测试:

    结果:

  • 相关阅读:
    Eclipse workspace被锁定
    OpenWrt增加软件包
    多核cpu关闭、开启核心
    python基础-元组(tuple)及内置方法
    JS变量+作用域
    JS宣传页项目-综合实战
    JS实现轮播图特效(带二级导航)
    JS DOM属性+JS事件
    JS DOM操作(创建、遍历、获取、操作、删除节点)
    JS中BOM操作知识点
  • 原文地址:https://www.cnblogs.com/cjwen/p/10666287.html
Copyright © 2011-2022 走看看