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 }
  • 相关阅读:
    java集合源码
    数据库表链接的几种方式
    面试题(RabbitMQ)
    常见面试题(Redis)
    某奥笔试题
    Servlet
    1——Django的基础及环境搭建
    6.13---example
    6.12---知道参数的重要性------插入数据-删除数据-修改数据注意Map
    6.12---前提两个对象的成员必须一致,才能将有数据的对象将数据传给反射获取的对象conver(有数据对象,目标对象)
  • 原文地址:https://www.cnblogs.com/xingele0917/p/2712280.html
Copyright © 2011-2022 走看看