线性表15|魔术师发牌问题和拉丁方阵 – 数据结构和算法20

线性表 15 : 魔术师发牌问题和拉丁方阵

让编程改变世界

Change the world by program

题外话

今天小甲鱼看到到微博有朋友在问,这个《数据结构和算法》系列课程有木有 JAVA 版本的?

因为这个问题之前也有一些朋友问过,所以咱在这里统一说下哈。

这个你要这么想,我们怀着民族情结看日本 AV 的时候,我们固然是完全不知道她们在所啥的,这点你要承认,但是我们对于师生,地铁,公车,办公室等的剧情确实了然指掌,完全可以忽略语言的障碍!

那么,编程为什么不可以呢?!

魔术师发牌问题

问题描述:

魔术师利用一副牌中的 13 张黑牌,预先将他们排好后叠放在一起,牌面朝下。对观众说:“我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?现场演示。”魔术师将最上面的那张牌数为 1,把他翻过来正好是黑桃 A,将黑桃 A 放在桌子上,第二次数 1,2,将第一张牌放在这些牌的下面,将第二张牌翻过来,正好是黑桃 2,也将它放在桌子上这样依次进行将 13 张牌全部翻出,准确无误。

问题:牌的开始顺序是如何安排的?

请利用循环链表来解决:Magician.c

拉丁方阵问题

拉丁方阵是一种 n×n 的方阵,方阵中恰有 n 种不同的元素,每种元素恰有 n 个,并且每种元素在一行和一列中 恰好出现一次。

著名数学家和物理学家欧拉使用拉丁字母来作为拉丁方阵里元素的符号,拉丁方阵因此而得名。

例如下图是一个 3×3 的拉丁方阵:

拉丁方阵

请利用循环链表来解决:latin.c

视频下载

备用视频下载