• 约瑟夫环之链表实现 C++实现


    #include <iostream>
    #include <stdlib.h>
    using namespace std;
    struct node{
      int x;
      //号码
      int data;
      //密码
      struct node * next;
      //下一个节点
    };
    typedef struct node *Link;
    Link head =(Link)malloc(sizeof(Link));
    //定义到全局,少写几个指针
    void crea_list(int m){
      //M人数
      Link p=(Link)malloc(sizeof(Link));

      head=p;
      int i=1;
      while(m--){
        Link q=(Link)malloc(sizeof(Link));
        q->x=i;
        //号码从一遍历
        cin>>q->data;
        //密码要求输入
        p->next=q;
        p=p->next;
        i++;
      }
     p->next=head->next;
     //封闭
    }

    int main(){
      int n,m;
      cin>>n>>m;
      crea_list(n);
      Link temp=head;
      int i=1;
      while(temp->next!=temp->next->next){
        if(i==m){
          Link q=temp->next;
          temp->next=temp->next->next;
          i=1;
          //初始报数
          m=q->data;
          //重新赋值M
          cout<<q->x<<' ';
          //输出出来的序列
          free(q);
          //解放多余的空间
        }else{
          i++;
          temp=temp->next;
          //报数到下一个人
        }
      }
      cout<<temp->x;
      //最后一个没有输出来,特殊处理
      return 0;
    }
    这是数据结构老师,在课上布置的小问题,写来玩玩,嘻嘻嘻

  • 相关阅读:
    接口测试相关面试题
    appium报错 Unhandled rejection Error: UiAUtomator shut down unexpectedly
    几道小题
    element-ui select 二级联动
    pycharm 永久注册
    Python-二分法查找
    python3通过qq邮箱发送邮件
    IntelliJ IDEA常用快捷键总结
    IDEA工具开发一些辅助功能设置
    类百度富文本编辑器文件上传。
  • 原文地址:https://www.cnblogs.com/yusuph/p/13774261.html
Copyright © 2020-2023  润新知