约瑟夫环问题
来源:互联网 发布:大数据未来发展 编辑:程序博客网 时间:2024/06/18 08:45
本人是大连理工大学学生,近期数据结构作业,是这道约瑟夫环问题。感觉自己写的还不错,索性分享交流一下。
#include<stdio.h>#include<stdlib.h>#include<malloc.h>#include<time.h>typedef int ElemType;typedef int Status;#define OVERFLOW -2#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define FALSE 0#define TRUE 1typedef struct LNode{ ElemType data; //代表编号结点的数据(代表人的序数) ElemType mima;//代表密码结点的数据 struct LNode *next;//代表后一个结点的地址}LNode,*LinkList;Status InitList(LinkList &L){ L=(LinkList)malloc(sizeof(LNode)); if(!L) return ERROR; L->next=NULL; return OK;}void InsertAtTail(LinkList &L,int n){ LNode *p,*rear; int i; L=(LinkList)malloc(sizeof(LNode)); L->next=NULL; rear=L; for(i=1;i<=n;i++) { p=(LinkList)malloc(sizeof(LNode)); printf("请输入第%d个人的序号:",i); scanf("%d",&(p->data)); //供老师检测代码结果用 /*printf("请输入第%d个人的密码:",i) scanf("%d",&(p->mima)); printf("\n"); */ srand((unsigned int)time(NULL)); p->mima=rand()%10+1; printf("随机数产生的第%d个人的密码是:%d\n",i,p->mima); p->next=NULL; rear->next=p; rear=p; } rear->next=L->next; free(L); L=rear->next;}void yuesefu(LinkList&L,int m,int n){ int length,i,j; LNode *p,*q; length=n; j=0; p=L; q=L; if(m==1) { for(i=1;i<n;i++) { q=q->next; } printf("第1个出列的是:1"); m=p->mima; q->next=p->next; free(p); length--; p=q->next; j++; } while(length!=0) { for(i=1;i<m;i++) { q=p; p=p->next; } j++; printf("第%d个出列的是:%d\n",j,p->data); m=p->mima; q->next=p->next; free(p); length--; p=q->next; }}int main(){ LinkList L; InitList(L); int n,m; printf("请输入人数\n"); scanf("%d",&n); InsertAtTail(L,n); printf("请输入出列的初始密码\n"); scanf("%d",&m); yuesefu(L,m,n); return 0;}
第一次写,还请各位批评指教。
2 0
- 约瑟夫问题、约瑟夫环
- Josephus约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题(Josephus)
- 约瑟夫环问题--java
- 约瑟夫环问题 Josephus
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 求解约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 约瑟夫环问题
- 数组的查询与冒泡排序(二分查询)
- GYM 100694 I.Goat in the Field(水~)
- Python笔记-初识Python
- Leetcode 15. 3Sum
- 【Android 应用开发】Android 数据存储 之 SQLite数据库详解
- 约瑟夫环问题
- Ubuntu16.04安装配置FastDFS
- Hdu 5256 序列变换【最长不递减序列】
- unity5. Unet同步问题总结
- 第二周,快捷键补充,版本2.1
- tiny4412 led_ioremap test
- hdu1087 Super Jumping! Jumping! Jumping!_LIS
- 【Linux】Ubuntu系统中Code::Blocks IDE安装全过程
- ubuntu下建立PPTP-VPN客户端拨号连接