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

  • 相关阅读:
    ArcMap导出图层属性为excel表
    ArcMap面转为线
    vue(18)声明周期函数
    geoserver发布mbtiles文件
    docker部署geoserver
    vue(17)组件插槽slot的使用
    vue(16)父子组件之间直接相互访问
    MySQL常用查询语句积累
    数据库的基本设计
    HashMap学习
  • 原文地址:https://www.cnblogs.com/ituff/p/2858553.html
Copyright © 2011-2022 走看看