zoukankan      html  css  js  c++  java
  • 单向循环链表队列,从头开始报数,当报到m或者m的倍数的元素出列

    有一个单向循环链表队列,从头开始报数,当报到m或者m的倍数的元素出列,根据出列的先后顺序重新组成单向循环链表。

    函数原型: void reorder(Node **head , int m)

    //没有将要出列的元素重新组织成循环列表,只将按顺序出列的元素依次打印出来,有待完善

     1 // 单向循环链表队列 报数出列.cpp 
     2 //没有将要出列的元素重新组织成循环列表,只将按顺序出列的元素依次打印出来,有待完善
     3 #include "stdafx.h"
     4 #include <stdlib.h>
     5 
     6 typedef struct node
     7 {
     8     int data;
     9     struct node *next;
    10 }node,*listqueue;
    11 
    12 void creatlist(listqueue &L,int num)//新建一个单链表,元素的值从1到num,head->date=1
    13 { 
    14     L=(listqueue)malloc(sizeof(listqueue));
    15     L->data=1;
    16     L->next=L;
    17     listqueue p,q=L;
    18     for(int i = 2;i<=num;i++) 
    19     {
    20         p = (listqueue)malloc(sizeof(listqueue));
    21         p->data = i;
    22         p->next=L;
    23         q->next=p;
    24         q=p;
    25     }
    26 }
    27 
    28 void CountoffRing(listqueue head,int m)
    29 {
    30     listqueue pPrev,pCurr;
    31     pPrev=pCurr=head;
    32     int i=1;
    33     while(pCurr!=NULL)
    34     {
    35         if(i==m)//i初始为1,每次打印出第m个元素后,将该结点踢出,再将i=1,进行循环
    36         {
    37             printf("%3d",pCurr->data);//打印出列的元素
    38             pPrev->next=pCurr->next;
    39             pCurr=pPrev->next;
    40             i=1;
    41         }
    42         pPrev=pCurr;
    43         pCurr=pPrev->next;
    44         i++;
    45         if(pPrev==pCurr)//最后一个
    46         {
    47             printf("%4d",pCurr->data);
    48             break;
    49         }
    50     }
    51 }
    52 
    53 void main()
    54 {
    55     listqueue head;
    56     creatlist(head,10);//创建数据从1到10的循环链表,head->data=1;
    57     CountoffRing(head,3);
    58 }
  • 相关阅读:
    php的webservice的soapheader认证问题
    训练与解码
    ajax 图片上传
    js倒计时
    数据分析有价值的博客
    [Luogu P5675][GZOI2017]取石子游戏
    [BZOJ4558/LOJ2025/Luogu3271][GZOI2016/JLOI2016/SHOI2016]方
    [BZOJ4557/LOJ2024/Luogu3267][GZOI2016/JLOI2016/SHOI2016]侦察守卫
    PKUWC2019游记
    随机带权选取文件中一行 分类: linux c/c++ 2014-06-02 00:11 344人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/xingele0917/p/2712280.html
Copyright © 2011-2022 走看看