当前位置: 首页 > news >正文

网站群如何做网站深圳制作网站公司哪里好

网站群如何做网站,深圳制作网站公司哪里好,南京app开发定制,怎么查找网站的服务器环形链表的约瑟夫问题 编号为 1 到 n 的 n 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。 下一个人继续从 1 开始报数。 n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少? 利用链表实现 思路&#xff1…

环形链表的约瑟夫问题

编号为 1nn 个人围成一圈。从编号为 1 的人开始报数,报到 m 的人离开。
下一个人继续从 1 开始报数。
n-1 轮结束以后,只剩下一个人,问最后留下的这个人编号是多少?
在这里插入图片描述

  • 利用链表实现
    思路:(1)创建一个不带头单向循环链表,需要注意的是链表创建后返回的结点是最后一个结点,为的是链表可快速找到第一个结点和最后一个结点
    (2)创建结构体指针prevcur,分别代表最后一个结点和第一个结点,因为cur已经为第一个结点,因此count=1。遍历链表直到pcurnext还是pcur(即链表中只含有一个结点)时退出循环,循环过程中当countm时需要将当前位置的pcur置空,count重置为1。不为count时,只需将链表往后执行即可
    (3)退出循环后,返回cur->val即可
 typedef struct ListNode ListNode;ListNode* ListBuyNode(int x){ListNode* node=(ListNode*)malloc(sizeof(ListNode));if(node == NULL){perror("malloc:");exit(1);}node->val=x;node->next=NULL;return node; }ListNode* CreatList(int n)
{ListNode* head=ListBuyNode(1);ListNode* tail=head;for(int i=2;i<=n;i++){ListNode* node=ListBuyNode(i);tail->next=node;tail=tail->next;}tail->next=head;return tail;// !!!
}int ysf(int n, int m ) 
{ListNode* prev=CreatList(n);ListNode* cur=prev->next;int count=1;while(cur->next != cur){if(count == m){prev->next=cur->next;free(cur);cur=prev->next;count=1;}else {prev=cur;cur=cur->next;count++;}}return cur->val;
}
  • 利用循环语句实现
    思路:(1)利用i,形成一个可循环遍历的类似圆形的数组
    (2)利用j,来判断报的数,当报的数正好为m时,将a[i]赋值为1,并且不进行下面的循环,直到数组中仅剩一个数组的值为0
    (3)退出循环,遍历数组输出值为0的数组的下标
#include<stdio.h>int main()
{int n = 0;int m = 0;scanf("%d %d",&n,&m);int a[30] = { 0 };int count = 0;int i = 0;int j = 0;while (count < n - 1){i++;if (i>n)i = 1;if (a[i] == 0){j++;if (j % m == 0){count++;a[i] = 1;j = 0;}}}for (i = 1; i < n; i++){if (a[i] != 1){printf("%d\n", i);break;}}return 0;
}

在这里插入图片描述

分割链表

给你一个链表的头节点 head 和一个特定值 x ,请你对链表进行分隔,使得所有小于x的节点都出现在 大于或等于x的节点之前。
你不需要保留每个分区中各节点的初始相对位置。
在这里插入图片描述
思路:(1)判断head是否为空,空则直接返回head
(2)创建两个两个带头单向不循环链表,一个存放小于x的值的结点,一个存放大于等于x的值的结点。lessheadgreaterhead分别为两个链表的头结点,lesstailgreatertail分别为两个链表的尾结点。
(3)创建一个pcur代替head进行链表遍历,当pcurval小于x时将pcur存入less链表,大于等于x时将pcur存入greater链表
(4)遍历结束判断greatertail是否为空,不为空则将greatertailnext赋值为空,再将lesstailnext赋值为greatertailnext,将大小链表连接在一起
(5)创建retail赋值为lessheadnext,再将lesshead进行free置空,最后返回retail即可

typedef struct ListNode ListNode;
struct ListNode* partition(struct ListNode* head, int x)
{if(head == NULL){return head;}ListNode* lesshead=(ListNode*)malloc(sizeof(ListNode));ListNode* greaterhead=(ListNode*)malloc(sizeof(ListNode));ListNode* lesstail=lesshead;ListNode* greatertail=greaterhead;ListNode* pcur=head;while(pcur){if((pcur->val) < x){lesstail->next=pcur;lesstail=lesstail->next;pcur=pcur->next;}else{greatertail->next=pcur;greatertail=greatertail->next;pcur=pcur->next;}}if(greatertail)greatertail->next=NULL;lesstail->next=greaterhead->next;ListNode* retail=lesshead->next;free(lesshead);lesshead=NULL;return retail;
}

在这里插入图片描述

http://www.yayakq.cn/news/424233/

相关文章:

  • 关于学院网站建设的意见网站建设 7 24
  • 大学生可以做的网站项目徐州亿网
  • 云南网站建设一度科技做学校网站
  • 网站建设运营知识专业做网站电话
  • 移动网站建设平台中国电子商务官网
  • wordpress电子商务站网盘资源共享群吧
  • 环保设备东莞网站建设wordpress文章点赞
  • 做彩票的网站有哪些公司怎么建设网站
  • 建设网站主要有哪些技术地方网站做哪些内容
  • 手机网站绑定域名是什么河北建设厅网站设置
  • 网站建设公司利润率广告设计软件有哪些
  • 顾客评价网站wordpress上传函数
  • 深圳网站设计模板学网页设计先学什么
  • 新密网站建设福建省品牌建设促进会网站
  • 空港经济区内的建设工程网站网络工程属于什么大类
  • php 网站缩略图跟我学seo从入门到精通
  • 做网站用什么地图好做网站改变图片位置
  • 阜阳做网站多少钱高德地图开发平台
  • html网站模仿企业网站建设实战教程
  • 如何建立网站服务器网页设计代码在哪里写
  • 外贸网站建设盲区荣耀手机官网
  • html网页制作总结seo博客网站
  • 手机公司网站建设比较好的去哪个网站可以接单做ps等等
  • 网站平台有哪些有没有做线播放网站
  • 虚拟网站仿制教程广州展厅设计公司有哪些
  • wordpress地址和站点地址苏州网站建设推广咨询平台
  • 单页网站排名外贸网络营销运营
  • 世界500强排名一览表做竞价的网站还用做seo
  • 把做的网站发布打万维网上西安企业电话
  • 佛山网站优化步骤建设企业网站的好处是什么