鱼C论坛

 找回密码
 立即注册
查看: 3826|回复: 1

[已解决]做不出来,求教

[复制链接]
发表于 2015-12-5 22:05:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
队列报数问题;
问题描述:求解报数问题
      设有n个人站成一排,从左向右的编号分别为1~n,现在从左往右报数“1,2,1,2……”,数到“1”的人出列,数到“2”的立即站到队伍的最右端。报数过程反复进行,直到n个人都出列为止。要求给出他们的出列顺序。
          例如:n=8,初始序列:1,2,3,4,5,6,7,8
            出队顺序为:1,3,5,7,2,6,4,8
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct QNode
{
        ElemType data;
        struct QNode *next;
}QNode,*Queueprt;
typedef struct
{
        Queueprt front,rear,lpp;
}LinkQueue;
LinkQueue *create(int n)
{
     LinkQueue *q;
     LinkQueue *p;
     int i=1;
     q->front=q->rear=(Queueprt)malloc(sizeof(QNode));
     if(0!=n)
     {
             while(i<=n)
             {
                     p->lpp=(Queueprt)malloc(sizeof(QNode));
                     p->lpp->data=i++;
                     q->rear->next=p->lpp;
                     q->rear=p->lpp;
             }
             p->lpp->next=q->front->next;
             free(q->front);
             return p->lpp->next;
     }
}
main()
{
        int n=8;
        int i=1;
        LinkQueue *q=create(n);
        LinkQueue *p;
        while(q->lpp!=q->lpp->next)
        {
                if(i%2!=0)
                {
                        printf("%d->",q->lpp->data);
                }else{
                        q->lpp=q->lpp->next;
                        free(q->lpp);
                }
                i++;
        }
}
最佳答案
2015-12-6 10:02:16
帮你写了份伪代码
i=1
while(QueueEmpty(Q))//当队列不空
{
    if(i%2==1)//奇数
    {
        DeQueue(Q,&elem);//出列
        print elem;
    }
    else//偶数
    {
        DeQueue(Q,&elem); //出列
        EnQueue(Q,&elem);//进入最右边
    }
    i++;//下一个人报数
}
QQ截图20151205220306.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-12-6 10:02:16 | 显示全部楼层    本楼为最佳答案   
帮你写了份伪代码
i=1
while(QueueEmpty(Q))//当队列不空
{
    if(i%2==1)//奇数
    {
        DeQueue(Q,&elem);//出列
        print elem;
    }
    else//偶数
    {
        DeQueue(Q,&elem); //出列
        EnQueue(Q,&elem);//进入最右边
    }
    i++;//下一个人报数
}

评分

参与人数 1荣誉 +3 鱼币 +5 收起 理由
~风介~ + 3 + 5 热爱鱼C^_^

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 20:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表