【数据结构】 约瑟夫回环 代码 冷不防 2022-08-25 01:55 190阅读 0赞 设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站出来。下一个人,即原来的第k+1个位置上的人,又从1开始报数,再报数到k的人站出来。依此重复下去,直到全部的人都站出来为止。试设计一个程序求出出列序列。 #include <stdio.h> #include <stdlib.h> typedef struct Data { Data *next; // 指针 int elem; // 数据元素 }LinkList,*pList; // 创建循环链表结构体 void main() { int size; pList head,p,q; head = (pList)malloc(sizeof(LinkList)); //uninitialized local variable 'head' used~ p = head; printf("输入此循环链表大小: "); scanf("%d",&size); for (int i = 0; i < size; i++) { p->next = (pList)malloc(sizeof(LinkList)); p = p->next; p->elem = rand()%50; p->next = head->next; } // 单循环链表 数据 输入完成 // 设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站出来。 // 下一个人,即原来的第k+1个位置上的人,又从1开始报数,再报数到k的人站出来。 // 依此重复下去,直到全部的人都站出来为止。试设计一个程序求出出列序列。 int m = -1; // 从某个位置 m(1≤m≤n)上的人开始报数 int n = -1; // 报数到 n 的人就站出来。 while (m <= 0 || n <= 0 || m > size) { printf("\n*************************\n"); printf("输入从哪个位置开始报数: "); scanf("%d",&m); printf("输入报数到多少开始输出: "); scanf("%d",&n); printf("\n*************************\n"); if (m > 0 && n > 0 && m <= size) break; else printf("输入有误,请重新输入!\n"); } // 移动好位置 while (--m != 0) { p = p->next; head->next = p -> next; } // 从表头输出一下 pList N = head->next; for (int j = 0;j<size;j++) { printf("%d\t",N->elem); N = N->next; } printf("\n"); while (size-- != 0) // 链表不为空 { // 开始报数 int i = 1; while (i != n) { i++; p = p->next; head->next = p->next; // 表头也跟着移动 } q = head->next; p ->next = p ->next ->next; printf("%d\t",q->elem); head->next = p->next; free(q); } free(p); free(head); // 释放 head 和 p指针 }
相关 约瑟夫环 约瑟夫环 1、参考资料 https://blog.csdn.net/shuaicihai/article/details/54847433 2、使用数组 痛定思痛。/ 2022年11月27日 06:54/ 0 赞/ 186 阅读
相关 【数据结构】 约瑟夫回环 代码 设有n个人围坐在圆桌周围,现从某个位置m(1≤m≤n)上的人开始报数,报数到k的人就站出来。下一个人,即原来的第k+1个位置上的人,又从1开始报数,再报数到k的人站出来。依此重 冷不防/ 2022年08月25日 01:55/ 0 赞/ 191 阅读
相关 约瑟夫环 package com.someusefuldesign.demo; import java.util.ArrayList; /约瑟 桃扇骨/ 2022年08月13日 15:54/ 0 赞/ 184 阅读
相关 约瑟夫环 \include<stdio.h> \include<stdlib.h> /\ 约瑟夫环是一个数学的应用问题: 已知n个人(以编号1,2,3...n分别表示)围 ╰半夏微凉°/ 2022年08月07日 01:53/ 0 赞/ 205 阅读
相关 约瑟夫环 约瑟夫环 约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3…n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个 怼烎@/ 2022年07月15日 13:39/ 0 赞/ 200 阅读
相关 约瑟夫环 N个人坐成一个圆环(编号为1 - N),从第1个人开始报数,数到K的人出列,后面的人重新从1开始报数。问最后剩下的人的编号。 例如:N = 3,K = 2。2号先出列,然后是 桃扇骨/ 2022年06月11日 06:26/ 0 赞/ 209 阅读
相关 约瑟夫环 【问题描述】 编号为 1,2,...,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。现在给定一个随 机数 m>0,从编号为 1 的人开始,按顺时针方向 1 今天药忘吃喽~/ 2022年04月22日 06:06/ 0 赞/ 255 阅读
相关 约瑟夫环 > 约瑟夫环运作如下: > 1、一群人围在一起坐成 \[2\] 环状(如:N) > 2、从某个编号开始报数(如:K) > 3、数到某个数(如:M)的时候,此人出列, 阳光穿透心脏的1/2处/ 2022年03月22日 16:38/ 0 赞/ 304 阅读
相关 约瑟夫环 约瑟夫环:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规 曾经终败给现在/ 2022年02月28日 00:54/ 0 赞/ 240 阅读
相关 约瑟夫环 编号为1,2,…,n的n个人按顺时针方向围坐在一张圆桌周围,每人持有一个密码(正整数)。一 开始任选一个正整数m作为报数上限值,从第一个人开始按顺时针方向自1开始报数,报到m时 r囧r小猫/ 2021年12月20日 04:29/ 0 赞/ 322 阅读
还没有评论,来说两句吧...