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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

基础-栈队列简单测试

發布時間:2024/9/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基础-栈队列简单测试 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
package com.nxz.blog.otherTest;import java.util.Queue; import java.util.Stack; import java.util.concurrent.LinkedBlockingQueue;public class Test02 {/*** 撲克游戲——“小貓釣魚”。游戲的規則是這樣的:將一副撲克牌平均分成兩份,每人拿一份。小哼先拿出手中的* 第一張撲克牌放在桌上,然后小哈也拿出手中的第一張撲克牌,并放在小哼剛打出的撲克牌* 的上面,就像這樣兩人交替出牌。出牌時,如果某人打出的牌與桌上某張牌的牌面相同,即* 可將兩張相同的牌及其中間所夾的牌全部取走,并依次放到自己手中牌的末尾。當任意一人* 手中的牌全部出完時,游戲結束,對手獲勝*/private static Queue<Integer> q1 = new LinkedBlockingQueue<Integer>();private static Queue<Integer> q2 = new LinkedBlockingQueue<Integer>();private static Stack<Integer> stack = new Stack<>();/*** 以上規則要求可以使用兩個隊列來表示每個人手中的牌,一個棧表示桌面上的牌,一個數組來判斷時候存在相同的牌** @param args*/public static void main(String[] args) {//初始化兩個隊列,也就是每個人手中的牌int[] arr1 = new int[]{2, 4, 1, 2, 5, 6};int[] arr2 = new int[]{3, 1, 3, 5, 6, 4};for (int i : arr1) {q1.add(i);}for (int i : arr2) {q2.add(i);}//初始化判斷桌面上有牌的數組,大小為10,因為本次測試中不同牌的個數為最多為9個int[] book = new int[10];//當向桌上扔牌時,就表示向stack中入棧,同時在數組中索引為牌的值的位置加1,表示桌面上已經有這個牌了//循環扔牌while (!q1.isEmpty() && !q2.isEmpty()) {//定義一個臨時變量,表示當前扔的牌int temp;//stack彈出的int t;temp = q1.poll();if (book[temp] == 0) {stack.push(temp);book[temp] = 1;} else {//表示桌面上已經存在book[temp] = 0;q1.add(temp);while (!stack.isEmpty() && (t = stack.pop()) > 0) {book[t] = 0;q1.add(t);if (t == temp) {break;}}}if(q1.isEmpty()){break;}temp = q2.poll();if (book[temp] == 0) {stack.push(temp);book[temp] = 1;} else {//表示桌面上已經存在q2.add(temp);book[temp] = 0;while (!stack.isEmpty() && (t = stack.pop()) > 0) {book[t] = 0;q2.add(t);if (t == temp) {break;}}}if(q2.isEmpty()){break;}System.out.println();System.out.print("stack:");stack.stream().forEach(item -> {System.out.print(item);});}//判斷輸贏if(q1.isEmpty()){System.out.println("第二個人獲勝");Object[] objects = q2.toArray();for (Object object : objects) {System.out.print(object);}}if(q2.isEmpty()){System.out.println("第一個勝利");Object[] objects = q1.toArray();for (Object object : objects) {System.out.print(object);}}System.out.println();stack.stream().forEach(item -> {System.out.print(item);});}} 第二個人獲勝 1652341 34562 Process finished with exit code 0

?

總結

以上是生活随笔為你收集整理的基础-栈队列简单测试的全部內容,希望文章能夠幫你解決所遇到的問題。

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