数据结构C语言版:魔术师发牌问题

故事背景

一位魔术师掏出一叠扑克牌,魔术师取出其中13张黑桃,洗好后,把牌面朝下。说:“我不看牌,只数一数就能知道每张牌是什么?”魔术师口中念一,将第一张牌翻过来看正好是A;魔术师将黑桃A放到桌上,继续数手里的余牌,第二次数1,2,将第一张牌放到这叠牌的下面,将第二张牌翻开,正好是黑桃2,也把它放在桌子上。第三次数1,2,3,前面二张牌放到这叠牌的下面,取出第三张牌,正好是黑桃3,这样依次将13张牌翻出,全部都准确无误。求解:魔术师手中牌的原始顺序是什么样子的?

#include<stdio.h>typedef int ElemType;// 定义结构体
typedef struct Magician {ElemType data;struct Magician* next;
}Magician;// 初始化魔术师链表
Magician* InitList(Magician* M) {Magician* p, * q;M = (Magician*)malloc(sizeof(Magician));M->next = M;M->data = 0;q = M;for (int i = 0; i < 12; i++) {p = (Magician*)malloc(sizeof(Magician));p->data = 0;p->next = M->next;M->next = p;M = p;}return q;
}// 实现发牌功能的函数
MagicianFun(Magician* M) {Magician* p;p = M;int count = 2, i;p->data = 1;while (1) {for (i = 0; i < count; i++) {p = p->next;if (p->data != 0) {p->next;i--;}}p->data = count;count++;if (count == 14) {break;}}
}// 遍历输出
TraverseList(Magician* M) {Magician* p;p = M;do {printf("黑桃%d ", p->data);p = p->next;} while (p != M);putchar('\n');
}int main() {Magician* M = NULL;M = InitList(M);MagicianFun(M);TraverseList(M);
}

数据结构C语言版:魔术师发牌问题相关推荐

  1. c语言 静态链表插入排序,数据结构C语言版 表插入排序

    西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...

  2. 为什么C语言是非形式化的,《数据结构C语言版》——绪论

    <数据结构C语言版>--绪论<笔记> 一.基本概念和术语 1.数据,数据元素, 数据项,数据对象 数据:是客观事物的符号表示,是所有能够输入到计算机中并被计算机程序处理的符号的 ...

  3. C语言中链表的英文名字,数据结构C语言版 循环链表表示和实现(国外英文).doc

    数据结构C语言版 循环链表表示和实现(国外英文) 数据结构C语言版 循环链表表示和实现(国外英文资料) Data structure, C language, circular list repres ...

  4. 数据结构(c语言版)笔记6,2020考研计算机《数据结构(C语言版)》复习笔记(6)

    2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机<数据结构(C语言版)>复习笔记(6),希望能帮助大家! 第六章 树知识点整理 树是n个结点的有限集合,非空时必须满 ...

  5. c语言打印树形图形,数据结构C语言版树形结构.ppt

    数据结构C语言版树形结构 St中元素 算法执行的操作 ch AC k=2 , AC 建立E结点,因k=1,将其作为C结点的左孩子结点 E AC C结点进栈,k=1 ( A 建立C结点,因k=2,将其作 ...

  6. 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置

    <(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...

  7. 23V3有这种C语言表达式吗,数据结构(C语言版第2版_李云清)习题答案2012-12.doc

    数据结构(C语言版第2版_李云清)习题答案2012-12.doc 第 1 章 绪论 1.1 什么是数据结构? [答]:数据结构是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储 于计算 ...

  8. 邓公数据结构C++语言版学习笔记——二叉树

    二叉树的遍历 一. preorder--先序遍历VLR 1. 递归先序遍历 2. 迭代先序遍历 3.先序遍历图解 二. inorder--先序遍历LVR 1. 递归中序遍历 2.迭代中序遍历 3.迭代 ...

  9. 邓公数据结构C++语言版学习笔记1

    1. 对于计算幂2n2^n2n的算法优化 暴力算法时间复杂度O(n)O(n)O(n) __int64 power2BF_I(int n) //幂函数2^n算法(蛮力迭代版),n >= 0{ __ ...

最新文章

  1. Python3多线程threading介绍(转载)
  2. 从CMOS到触发器(一)
  3. hdu 1700 (圆的内接三角形 要周长最大)
  4. 职业中专的计算机综合应用,职业中专计算机教学的思考
  5. C++primer 第 4 章 表达式 4.7条件运算符 4.8位运算符 4.9 sizeof运算符 4.10逗号运算符 4.11类型转换 4 . 1 2 运算符优先级表
  6. Spring Boot引起的“堆外内存泄漏”排查及经验总结
  7. js微信监听返回_微信小程序(2)- 框架结构amp;运行环境
  8. MFC无标题栏对话框移动的处理方法
  9. 开源协议栈 rlc rrc_LTE的组网架构与接口协议
  10. Android---Textview加入Intent、表情,点击跳转Activity
  11. 油炸锅EN/IEC60335 CE认证标准介绍
  12. Topaz DeNoise AI 3.7 人工智能降噪
  13. 计算机网络(网络编程)
  14. 商品的spu、sku及其之间的关系
  15. 【YOLOv5报错】AssertionError: Label class 4 exceeds nc=4 in /xxxxxx解决方法
  16. 从真正的零组建一台日常使用PC+NAS
  17. 快速学习JS的思考方法、有用
  18. 一篇文章详细介绍元宇宙
  19. 复杂推理的进展与挑战——从LSAT讲起
  20. 【操作系统】第十一章死锁与进程通信

热门文章

  1. 浅谈计算机辅助数学教学论文,论文浅谈对计算机辅助数学教学的认识.doc
  2. 谁来挑战中国跳水梦之队 金童功力几何黑马潜伏
  3. springcloud高可用方案
  4. 防火墙双机设备(旁挂组网),HRP双主原因
  5. python十进制小数转二进制_Python实现的十进制小数与二进制小数相互转换功能
  6. harmonyos2.0能在电脑安装么,华为鸿蒙系统2.0怎么安装 HarmonyOS2.0安装攻略
  7. 指纹识别源代码(1)-图像处理
  8. 全国十大孕婴连锁加盟品牌排行榜
  9. 双显示器 启动黑屏 黑苹果_黑苹果修改分辨率之后黑屏(频率超出显示器范围)...
  10. python查询实时天气预报_python基础练习:实时天气预报