数据结构C语言版:魔术师发牌问题
数据结构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语言版:魔术师发牌问题相关推荐
- c语言 静态链表插入排序,数据结构C语言版 表插入排序
西门豹治邺奇计 数据结构C语言版 表插入排序.txt两个人吵架,先说对不起的人,并不是认输了,并不是原谅了.他只是比对方更珍惜这份感情./* 数据结构C语言版 表插入排序 算法10.3 P267-P2 ...
- 为什么C语言是非形式化的,《数据结构C语言版》——绪论
<数据结构C语言版>--绪论<笔记> 一.基本概念和术语 1.数据,数据元素, 数据项,数据对象 数据:是客观事物的符号表示,是所有能够输入到计算机中并被计算机程序处理的符号的 ...
- C语言中链表的英文名字,数据结构C语言版 循环链表表示和实现(国外英文).doc
数据结构C语言版 循环链表表示和实现(国外英文) 数据结构C语言版 循环链表表示和实现(国外英文资料) Data structure, C language, circular list repres ...
- 数据结构(c语言版)笔记6,2020考研计算机《数据结构(C语言版)》复习笔记(6)
2020年计算机考研复习已经开始,新东方在线在此整理了2020考研计算机<数据结构(C语言版)>复习笔记(6),希望能帮助大家! 第六章 树知识点整理 树是n个结点的有限集合,非空时必须满 ...
- c语言打印树形图形,数据结构C语言版树形结构.ppt
数据结构C语言版树形结构 St中元素 算法执行的操作 ch AC k=2 , AC 建立E结点,因k=1,将其作为C结点的左孩子结点 E AC C结点进栈,k=1 ( A 建立C结点,因k=2,将其作 ...
- 逆置单链表c语言程序,(数据结构C语言版)顺序表和单链表的逆置
<(数据结构C语言版)顺序表和单链表的逆置>由会员分享,可在线阅读,更多相关<(数据结构C语言版)顺序表和单链表的逆置(7页珍藏版)>请在人人文库网上搜索. 1.实验1-1顺序 ...
- 23V3有这种C语言表达式吗,数据结构(C语言版第2版_李云清)习题答案2012-12.doc
数据结构(C语言版第2版_李云清)习题答案2012-12.doc 第 1 章 绪论 1.1 什么是数据结构? [答]:数据结构是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储 于计算 ...
- 邓公数据结构C++语言版学习笔记——二叉树
二叉树的遍历 一. preorder--先序遍历VLR 1. 递归先序遍历 2. 迭代先序遍历 3.先序遍历图解 二. inorder--先序遍历LVR 1. 递归中序遍历 2.迭代中序遍历 3.迭代 ...
- 邓公数据结构C++语言版学习笔记1
1. 对于计算幂2n2^n2n的算法优化 暴力算法时间复杂度O(n)O(n)O(n) __int64 power2BF_I(int n) //幂函数2^n算法(蛮力迭代版),n >= 0{ __ ...
最新文章
- Python3多线程threading介绍(转载)
- 从CMOS到触发器(一)
- hdu 1700 (圆的内接三角形 要周长最大)
- 职业中专的计算机综合应用,职业中专计算机教学的思考
- C++primer 第 4 章 表达式 4.7条件运算符 4.8位运算符 4.9 sizeof运算符 4.10逗号运算符 4.11类型转换 4 . 1 2 运算符优先级表
- Spring Boot引起的“堆外内存泄漏”排查及经验总结
- js微信监听返回_微信小程序(2)- 框架结构amp;运行环境
- MFC无标题栏对话框移动的处理方法
- 开源协议栈 rlc rrc_LTE的组网架构与接口协议
- Android---Textview加入Intent、表情,点击跳转Activity
- 油炸锅EN/IEC60335 CE认证标准介绍
- Topaz DeNoise AI 3.7 人工智能降噪
- 计算机网络(网络编程)
- 商品的spu、sku及其之间的关系
- 【YOLOv5报错】AssertionError: Label class 4 exceeds nc=4 in /xxxxxx解决方法
- 从真正的零组建一台日常使用PC+NAS
- 快速学习JS的思考方法、有用
- 一篇文章详细介绍元宇宙
- 复杂推理的进展与挑战——从LSAT讲起
- 【操作系统】第十一章死锁与进程通信
热门文章
- 浅谈计算机辅助数学教学论文,论文浅谈对计算机辅助数学教学的认识.doc
- 谁来挑战中国跳水梦之队 金童功力几何黑马潜伏
- springcloud高可用方案
- 防火墙双机设备(旁挂组网),HRP双主原因
- python十进制小数转二进制_Python实现的十进制小数与二进制小数相互转换功能
- harmonyos2.0能在电脑安装么,华为鸿蒙系统2.0怎么安装 HarmonyOS2.0安装攻略
- 指纹识别源代码(1)-图像处理
- 全国十大孕婴连锁加盟品牌排行榜
- 双显示器 启动黑屏 黑苹果_黑苹果修改分辨率之后黑屏(频率超出显示器范围)...
- python查询实时天气预报_python基础练习:实时天气预报