packagecom.wyl.linklist;/****问题名称:魔术师发牌问题

*问题描述:魔术师手里一共有13张牌,全是黑桃,1~13.

*********魔术师需要实现一个魔术:这是十三张牌全部放在桌面上(正面向下),

********第一次摸出第一张,是1,翻过来放在桌面上。

******第二次摸出从上往下数第二张,是2,翻过来 放在桌面上,(第一张放在最下面去,等会儿再摸),

*****第三次摸出从上往下数第三张,是3,翻过来放在桌面上,(第一张和第二张 放在最下面去,等会儿再摸)

*** 以此类推 最后一张就是13

*

* 方法:

* 1、创建一个长度为13的单向循环链表,链表中值全部存0

* 2、遍历链表进行修改值

*@authorwyl

**/

public classMagicCord {private Node head; //定义链表的头结点

/*** 创建链表中的Node类*/

classNode{privateInteger data;privateNode next;publicNode(){

}publicNode(Integer data){this(data, null);

}publicNode(Integer data, Node next) {this.data =data;this.next =next;

}publicInteger getData() {returndata;

}public voidsetData(Integer data) {this.data =data;

}publicNode getNext() {returnnext;

}public voidsetNext(Node next) {this.next =next;

}

}/*** 构造函数中直接初始化长度为13的循环链表

* 第一个节点的值默认为1*/

publicMagicCord(){

head= new Node(1);

Node p=head ;int i = 1;while(p.next == null && i < 13){

Node newNode= new Node(0);

p.next=newNode;

p=p.next;

i++;

}

p.next= head; //构建循环链表

}//打印循环链表

public voidprint(){

Node p=head;int i = 0;while(i++<13){

System.out.print(p.data+ "、");

p=p.next ;

}

}//循环修改节点的值

public voidmagic(){int i = 2; //从2开始存数字到13

Node p = head; //指针p指向head,用来控制每次指针移动的下一个位置

for(;i<=13;i++){for(int j = 0; j

p=p.next;if(p.data != 0){

j--;

}

}

p.data=i;

}

}public static voidmain(String[] args) {

MagicCord magicCord= newMagicCord();

magicCord.print();

magicCord.magic();

System.out.println();

magicCord.print();

}

}

魔术师发牌问题 java_魔术师发牌问题--java实现相关推荐

  1. python 斗地主发牌_tkinter模拟斗地主发牌

    在上一篇文章的最后,我们留了一个小作业:花果山美男子:tkinter模拟扑克牌和狼人杀发牌​zhuanlan.zhihu.com 小作业2:模拟斗地主发牌,上方是牌库,实现从牌库到三个方向的动态发牌, ...

  2. 魔术师发牌java_魔术师发牌问题和拉丁布方阵

    本文利用经典的魔术师发牌问题与拉丁法阵分别讲解了循环链表与单向链表的使用,作为算法中的经典,对于链表的学习和理解都有着很大的帮助,不妨一看. 魔术师发牌问题 问题描述: 魔术师利用一副牌中的13张黑牌 ...

  3. 发牌游戏 java_解析扑克牌游戏发牌算法——java实现

    我们都玩过扑克牌的小游戏,有没有想过扑克牌的发牌是怎样实现的呢? 首先,我们手里有一副牌,假设去掉大小鬼,我们手里的牌用数字1-52表示.我们每次只取出一个数字,那我们如何取出这些数字并且使每次取出的 ...

  4. java扑克牌随机发牌_Java练习——扑克牌发牌器

    Java练习--扑克牌发牌器 声明:学习自其他博主,感谢分享,这里自己也写了一下. 实现思路 - 构建一张扑克牌 - 构建一套扑克牌 - 测试 构建一张扑克牌 /***@author冬冬 * 定义一个 ...

  5. 扑克牌java发牌_Java练习——扑克牌发牌器

    Java练习--扑克牌发牌器 声明:学习自其他博主,感谢分享,这里自己也写了一下. 实现思路 - 构建一张扑克牌 - 构建一套扑克牌 - 测试 构建一张扑克牌 /***@author冬冬 * 定义一个 ...

  6. java斗地主随机发牌_java实现斗地主发牌功能

    本文实例为大家分享了java实现斗地主发牌的具体代码,供大家参考,具体内容如下 参考斗地主的游戏规则,完成一个发牌的功能(54张牌,考虑点数,花色:三名玩家,其中地主比其他玩家多3张牌) 代码如下: ...

  7. java斗地主发牌_java实现斗地主发牌系统

    本文实例为大家分享了java实现斗地主发牌系统的具体代码,供大家参考,具体内容如下 玩家类 package com.softeem.example; import java.util.ArrayLis ...

  8. java斗地主发牌_实现斗地主发牌(java)

    /** *这是一个java实现的斗地主,发牌结果的程序,实现3个人十三张牌,然后底牌3张. */ import java.util.Arrays; public class pokerDemo{ pu ...

  9. java 随机发牌_java实现扑克牌发牌器

    Java练习--扑克牌发牌器,供大家参考,具体内容如下 声明:学习自其他博主,感谢分享 实现思路 构建一张扑克牌 构建一套扑克牌 测试 构建一张扑克牌 /** * @author 冬冬 * 定义一个单 ...

最新文章

  1. CentOS安装VSFTP及配置用户
  2. JavaScript 复习之 Array 对象
  3. GPIO8种方式小总结
  4. profiler分析器——R语言
  5. http --- 路由器缓存与常见的状态码
  6. 122345 java_【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。 | 学步园...
  7. 同一个电脑安装几个MATLAB,同一个版本的matlab、同一个.m文件,为何一个顺利执行、另一个出错?...
  8. 使用html和css的一些经验
  9. 【TSP】基于matlab狼群算法求解旅行商问题【含Matlab源码 211期】
  10. 从录屏到转换为GIF的一站式解决方案
  11. HTML中想要看见盒子的边框,盒子边框装饰
  12. 开发必备的文本比较工具
  13. 实验4、A/D转换实验
  14. Unity粒子系统-粒子光环
  15. test 4:假币问题
  16. CA65测试针对的是哪些产品呢
  17. 一文搞懂由积分判断函数零点个数问题(积分证明题总结笔记2/3)
  18. scala项目的全局配置实践
  19. 测试职业规划之知识点总结
  20. docker学习笔记(二)docker常用命令

热门文章

  1. 面试必会系列 - 11.1 一文读懂Maven:Maven工程类型、项目结构、工程关系、常见命令等
  2. 【JavaScript+JinJa2】表格中将后台传入的None值显示为空字符串,将数据显示为int类型值
  3. 【PAT甲级 BigInteger运算】1024 Palindromic Number (25 分) Java 全部AC
  4. C语言 数据结构 栈(用链表实现)
  5. Leet Code OJ 26. Remove Duplicates from Sorted Array [Difficulty: Easy]
  6. 使用GoLand创建并运行项目
  7. 01. elasticsearch certification 练习题
  8. AMD和CMD出生的背景和它们解决的问题
  9. 如何快速理解递归——蓝桥杯 试题 基础练习 FJ的字符串(递归与非递归解法)——10行代码AC
  10. (*长期更新)软考网络工程师学习笔记——Section 5 数据链路层