C数据结构循环链表实现约瑟夫环
时间:2019-03-30
本文章向大家介绍C数据结构循环链表实现约瑟夫环,主要包括C数据结构循环链表实现约瑟夫环使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
C数据结构循环链表实现约瑟夫环
本文代码均在turbo C 2.0 的环境下运行通过,并得到正确结果,本程序为用循环链表实现约瑟夫环,即有m个人站成一个圆环,从某人(队列第一个)开始报数,约定从某数开始的第n个人出列,他的下一个再从一开始报,然再一个报道n的人出列,本程序结果为人员出列顺序,
#include<stdio.h> #include<conio.h> #define OK 1 #define NULL 0 typedef int status; typedef int ElemType; typedef struct LNode{ ElemType data; struct LNode *next; }LNode,*LinkList; LinkList L; status CreateList_L(LinkList *L,int m) {LNode *p,*q; int i; *L=(LinkList)malloc(sizeof(LNode)) ; q=*L; q->data=1; for(i=2;i<=m;i++) {p=(LinkList)malloc(sizeof(LNode)); p->data=i; p->next=NULL; q->next=p; q=p; } q->next=*L; return OK; } status function(LinkList *L,int m,int n) {LNode *p,*q; int i,j=1,k=1; p=*L; q=p; do {p=q->next;j++; if(j%n==0) {printf("%3d",p->data); q->next=p->next; k++; free(p); } else q=p; }while(k<=m); return OK; } void main() {int m,n; clrscr(); gotoxy(5,8); printf("***************************************************\n"); gotoxy(5,9); printf("**** the list's length is : ****\n"); gotoxy(35,9); scanf("%d",&m); gotoxy(5,10); printf("****the xunhuan's length is : ****\n"); gotoxy(35,10); scanf("%d",&n); gotoxy(5,11); printf("***************************************************\n"); CreateList_L(&L, m); function(&L,m,n); }
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Anaconda使用命令
- 最大连续子数组
- markdown编辑器实现代码高亮
- LeetCode - 198 简单动态规划 打家劫舍
- Jaskson精讲第7篇-JsonTypeInfo注解在类继承关系下的使用
- 《剑指Offer 1.二维数组中的查找》2019-03-25
- Elasticsearch:Dynamic mapping
- 设计模式《单例设计模式》
- 《0-1 背包问题》
- 使用分治思想 求数组中的最大和最小值
- python 入门笔记[语法基础(下)]
- Java 成员变量和属性的区别
- xmuC语言程序实践week 1 大作业
- 《01-背包问题-点菜》
- 模拟赛 2018 Benelux Algorithm Programming Contest (BAPC 18)(部分题)