Joseph环(顺序表、链队列)
来源:互联网 发布:室内设计绘图软件 编辑:程序博客网 时间:2024/06/05 14:42
1.顺序表
#include<stdio.h>
void Joseph(int str[][2],int m,int n);
int main()
{
int m,n,i; //n表示环长,m表示是密码
int str[100][2]; //二维数组用来存储元素值和标志变量
printf("请输入环长和密码:");
scanf("%d,%d",&n,&m);
for(i=0;i<n;i++)
{
printf("请输入第%d个元素值:",i+1);
scanf("%d",&str[i][0]);
str[i][1]=1; //设标志变量为1
}
printf("\n");
Joseph(str,m,n);
return 0;
}
void Joseph(int str[][2],int m,int n)
{
int count=1,a=0,i; //a表示出环元素的个数,count计数是否达到密码值
for(i=0;i<n;)
{
if(str[i][1]==1)
{
if(count==m)
{
printf("%-3d",str[i][0]); //输出被选中的元素
count=1; //重新计数
str[i][1]=0; //将已输出的元素的标志变量变为0
a++;
}
else count++;
}
i++;
if(i==n&&a<n) i=0; //当输出的元素个数小于总个数时,继续循环
}
}
2.链队列
#include <stdio.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}Node;
void Joseph(Node *front,Node *r,int m,int n);
int main()
{
int m,n,i;
Node *front=NULL,*s,*r; //front为头结点,r为尾指针
printf("请输入环长和密码:");
scanf("%d,%d",&n,&m);
front=(Node *)malloc(sizeof(Node));
r=front;
for(i=1;i<=n;i++)
{
s=(Node *)malloc(sizeof(Node));
s->data=i;
r->next=s;
r=s;
}
r->next=NULL;
Joseph(front,r,m,n);
return 0;
}
void Joseph(Node *front,Node *r,int m,int n)
{
Node *p=front->next,*q,*a;
int count=1,i;
for(i=0;i<n;)
{
if(count<m && p->next != NULL)
{
a=p;
p=p->next;
front->next = p;
a->next=NULL;
r->next=a;
r=a;
count++;
}
else
{
printf("%-3d",p->data);
q=p;
p=p->next;
front->next=p;
free(q);
i++;
count=1;
}
}
}
- Joseph环(顺序表、链队列)
- Joseph环-循环链表实现
- Joseph (约瑟夫环(打表))
- Joseph问题(循环链表)
- 约瑟夫环(joseph)
- 【数据结构】顺序队列(链表实现)
- Joseph队列解法
- 线性表-顺序队列(循环队列)
- (约瑟夫环公式)Joseph
- 循环链表实现Joseph环(约瑟夫环)猴子选大王类似问题
- Structure.Queue 队列(包含顺序队列,链表队列的实现)
- 实验四:顺序队列(循环队列)和链队列
- uva 305 Joseph(约瑟夫环解+打表)
- UVA 305 Joseph (约瑟夫环 打表)
- joseph环
- JOSEPH环
- joseph环
- 数据结构(二):线性表包括顺序存储结构(顺序表、顺序队列和顺序栈)和链式存储结构(链表、链队列和链栈)
- B/S初探之北大青鸟-ASP.NET 总结
- 静态查找(顺序、折半)
- C#各种问题解决
- [Hb-XV] 安装新的int 9中断例程
- Sicily 1010. Zipper 尾递归
- Joseph环(顺序表、链队列)
- Exercise:Sparse Autoencoder 代码示例
- 优化SQLite3数据库插入10000条数据
- usaco2.1usaco_Ordered Fractions
- 【LeetCode】Same Tree
- 数据库查询优化 查询上百万级记录提高查询速度
- IntelliJ IDEA 使用心得与常用快捷键
- 【养孩子这么贵,还是生一个算了吧】设计模式之单例模式Java版
- Forecasting with daily data