数据结构 c语言 循环队列实现扑克牌问题
2017-07-29 17:26
246 查看
题目1:实现扑克牌问题
扑克牌原理:有A-K共13张牌摞在一起,不知道其中的顺序,拿出最上面的一张放在最下面,拿出第二张牌放在桌子上,循环操作,直到所有牌放在桌子上,桌子上的牌的顺序是A-K,问牌摞在一起的顺序是什么?
#include<stdio.h>
typedef struct Queue
{
int index; //原序号
}Queue;
Queue qw[10001];
int main()
{
int result[13],front = 0,rear = 13,k = 1;
for(int i = 0;i < 13;i++)
{
qw[i].index = i;
result[i] = 0;
}
while(front < rear)
{
//出队到桌面
int index = qw[front].index;
result[index] = k++;
//出队到队尾
front++;
if(front == rear)break;
qw[rear++] = qw[front];
front ++;
}
for(int i = 0;i < 13;i++)
{
printf("%d ",result[i]);
}
printf("\n");
return 0;
}
扑克牌原理:有A-K共13张牌摞在一起,不知道其中的顺序,拿出最上面的一张放在最下面,拿出第二张牌放在桌子上,循环操作,直到所有牌放在桌子上,桌子上的牌的顺序是A-K,问牌摞在一起的顺序是什么?
#include<stdio.h>
typedef struct Queue
{
int index; //原序号
}Queue;
Queue qw[10001];
int main()
{
int result[13],front = 0,rear = 13,k = 1;
for(int i = 0;i < 13;i++)
{
qw[i].index = i;
result[i] = 0;
}
while(front < rear)
{
//出队到桌面
int index = qw[front].index;
result[index] = k++;
//出队到队尾
front++;
if(front == rear)break;
qw[rear++] = qw[front];
front ++;
}
for(int i = 0;i < 13;i++)
{
printf("%d ",result[i]);
}
printf("\n");
return 0;
}
相关文章推荐
- 【数据结构】c语言链表实现报数问题
- 迷宫问题的通用解法C语言数据结构实现
- C语言数据结构之单向链表(已经调试可以实现相应的功能了,可是还是有几个问题现在还是不大理解,希望大家能够一起探讨)
- 数据结构_队列-循环队列实现模拟舞伴配对问题
- 数据结构C语言单链表的实现和几点注意的问题
- 数据结构(严蔚敏)之五——循环队列(c语言实现)
- 数据结构_队列-循环队列实现模拟舞伴配对问题
- 括号匹配问题 栈的应用 C语言实现
- C语言 队列的链式结构的实现与表示 数据结构 队列的实现与表示
- 数据结构C语言实现系列——二叉树[转]
- 用C语言实现“百鸡问题”的求解
- 数据结构C语言实现系列——队列
- 判断素数问题(C语言实现)
- 哲学家进餐问题的C语言实现
- 跪求一道关于c语言和数据结构的问题
- 数据结构实现之堆栈实现时的问题的图片
- C语言实现N皇后问题源代码
- c语言的一结构数据的堆栈实现问题
- C语言实现数据结构中的循环链表
- 线性表数据结构C语言实现