日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

魔术师发牌问题 java_魔术师发牌问题--java实现

發布時間:2024/1/23 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 魔术师发牌问题 java_魔术师发牌问题--java实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

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实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。