日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

(数据结构与算法)稀疏数组案例

發布時間:2025/3/20 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (数据结构与算法)稀疏数组案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

案例:

將如下五子棋盤用稀疏數組保存,并有存盤退出和續上盤功能(文件輸入輸出)

實現思路

代碼實現

import java.io.*;public class Demo01SparseArray {public static void main(String[] args) throws Exception {//創建原始數組int[][] arr1 =new int[11][11];arr1[1][2] = 1;arr1[2][3] = 2;int sum = 0;//遍歷原始數組System.out.println("-------------------原始數組--------------------");for (int i = 0; i <arr1.length ; i++) {for (int j = 0; j <arr1[0].length ; j++) {System.out.print(arr1[i][j]+" ");if (arr1[i][j]!=0){//記錄有效數據個數sum++;}}//每輸完一行數組,換行System.out.println();}System.out.println("有效數據個數為:"+sum);//根據原始數組創建稀疏數組int[][] sparseArr1 = new int[sum+1][3];CreateSparseArr(arr1, sum, sparseArr1);//遍歷稀疏數組System.out.println("-------------------遍歷稀疏數組--------------------");printArr(sparseArr1);//將稀疏數組存儲到文件中File file = new File("D:\\map.data");putSparseArrInFile(sparseArr1,file);//從文件中讀取稀疏數組并輸出System.out.println("-------------------文件中讀取稀疏數組--------------------");int[][] sparseArr2 = getSparseArrInFile(file,sum);printArr(sparseArr2);}private static int[][] getSparseArrInFile(File file, int sum) throws Exception {int[][] sparseArr = new int[sum+1][3];BufferedReader reader = new BufferedReader(new FileReader(file));String line = "";int row = 0;while ((line = reader.readLine())!=null){//獲取行數String[] tem = line.split("\t");for (int i = 0; i <tem.length ; i++) {sparseArr[row][i]=Integer.parseInt(tem[i]);}row++;}return sparseArr;}private static void CreateSparseArr(int[][] arr1, int sum, int[][] sparseArr1) {//表頭數據sparseArr1[0][0] = arr1.length;sparseArr1[0][1] = arr1[0].length;sparseArr1[0][2] = sum;int count = 0;for (int i = 0; i <arr1.length ; i++) {for (int j = 0; j <arr1[0].length ; j++) {if (arr1[i][j]!=0){count++;sparseArr1[count][0] = i;sparseArr1[count][1] = j;sparseArr1[count][2] = arr1[i][j];}}}}private static void printArr(int[][] sparseArr1) {for (int i = 0; i <sparseArr1.length ; i++) {for (int j = 0; j <sparseArr1[0].length ; j++) {System.out.print(sparseArr1[i][j]+" ");}System.out.println();}}private static void putSparseArrInFile(int[][] sparseArr1, File file) throws IOException {if (file.exists()) {file.mkdir();}FileWriter out = new FileWriter(file);for (int i = 0; i <sparseArr1.length ; i++) {for (int j = 0; j <sparseArr1[0].length ; j++) {out.write(sparseArr1[i][j]+"\t");}out.write("\n");}out.close();} } 《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的(数据结构与算法)稀疏数组案例的全部內容,希望文章能夠幫你解決所遇到的問題。

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