循环链表建立、删除
来源:互联网 发布:ichart.1.2.min.js 编辑:程序博客网 时间:2024/05/16 06:11
约瑟夫环问题--n个点循环链表,从第k个人开始报数,数到m的出队,他的下一个开始到第k个开始报数,循环出队,直至链表为空
#include <iostream>#include <stdio.h>#include <malloc.h>using namespace std;typedef struct node{ int data; struct node *next;}node;void JOSEPHUS(int n,int k,int m)//n为总人数,k为第一个开始报数的人,m为出列喊道数{ //建立循环链表 node *p,*curr; p=(node*)malloc(sizeof(node)); p->data=0; p->next=p; curr=p; for(int i=1;i<n;i++){ node *temp=(node*)malloc(sizeof(node)); temp->data=i; temp->next=curr->next; curr->next=temp; curr=temp; } //按约定删除链表中元素 node *p0=curr; while(k--){//找到第一个开始计数的点,第k个人 p0=p; p=p->next; } while(n--){//n个点,做n次循环 for(int i=m-1;i--;p0=p,p=p->next);//找到开始计数的第m个点 p0->next=p->next; free(p); cout<<p->data<<"-"; while(k--) p0=p,p=p->next; }}int main(){ JOSEPHUS(13,4,1); return 0;}
0 0
- 循环链表建立、删除
- 循环链表的建立,查找,删除
- 建立,删除循环链表中的一个元素
- 双向循环链表的建立、查找、添加、删除
- 循环链表建立
- 双向循环链表建立
- 链表::建立循环链表
- 循环链表的建立
- c语言实现单链表建立,插入,删除,查找,循环链表,静态链表
- 【程序员面试宝典】数据结构基础二单链表循环链表的操作 建立|插入删除|打印|合并
- 数据结构之循环链表操作3-(合并,拆分,插入,删除,建立等)
- 数据结构之双向循环链表操作4-(插入,删除,建立等)
- 链表::删除循环链表
- 循环链表删除,逆置
- 数据结构作业代码保存-2.1 单向循环链表的建立,插入和删除,和指针移动
- 数据结构 线性表 建立循环链表
- 单向循环链表的建立
- 建立有序双向循环链表
- 开发者MAC电脑里的十八般兵器
- [疑问]在linux内核编程 不能include <stdio.h>的原因
- div居中
- java常用字节流
- Android 开发之判断当前是否有网络可用
- 循环链表建立、删除
- 无线网老掉线问题解决?
- ios UIImagePickerController 自定义裁剪框 限制比例等
- 小曹学spring--基于@AspectJ和Schema的AOP
- java Lambda expressions Method References
- 程序员常用的技术网站(http://bbs.jointforce.com/topic/17717)
- 用MathType这样编辑圆圈符号
- TextView中超链接功能的实现
- 关于插入有外键约束表的思考