zoukankan      html  css  js  c++  java
  • 约瑟夫问题(单向链表)

    # include "stdlib.h" 
    # include "stdio.h" 
    struct Node
    {
     int data;
     Node *next;
    };
    int main()
    {
     int n,k=1,m,i,s;
      Node *p,*q,*head;
      printf("约瑟夫问题——顺序表/n输入总人数n和退出编号m:/n"); // 输入总人数,退出编号 
      scanf("%d%d",&n,&m); 
      head=new Node;           //确定头结点
      p=head;
     for(i=1;i<=n-1;i++)                 //赋初值
     {
      p->data=i;
      p->next=new Node;   //为下一个新建内存
      p=p->next;
     }
      p->data=n;                 //最后一个单独处理
      p->next=head;                 //指向头,形成循环链表
      p=head;                 
     
     while(p->data!=(p->next)->data)            //p->data==(p->pNext)->data表示只剩下一个结点的
     {
      while(p->data !=k)         //寻找编号为k的结点
       p=p->next;
       s=1;
     if(m==1)
     {
      for(i=1;i<n;i++)
      {
       p=p->next ;
       }  
      printf("最后退出的是第%d位人/n",p->data);     
    break;
     }
    else
    {
    while(p!=p->next)           
     {
      for(i=1;i<m-1;i++)         
    p=p->next;             
    q=p->next;          
    p->next=q->next;
    p=p->next;
      delete q;
      s++; 
       }
    printf("最后退出的是第%d位人/n",p->data);      
    delete p;
    }
     }
    system("Pause");
    return 0; 
    }

  • 相关阅读:
    2021昆明站K-Riichi!!(麻将)
    数据结构 Week 3 --- dsu on tree 和 点分治
    数据结构 Week 2 --- 平衡树
    数据结构 Week 1 --- 从线段树到主席树
    一些思维题(三)
    一些思维题(二)
    2021ICPC昆明站总结及补题
    2021ICPC昆明M题 非主席树做法
    2020ICPC昆明参赛
    记5.28leetcode简单题
  • 原文地址:https://www.cnblogs.com/ituff/p/2858553.html
Copyright © 2011-2022 走看看