(数据结构与算法)稀疏数组案例
生活随笔
收集整理的這篇文章主要介紹了
(数据结构与算法)稀疏数组案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
案例:
將如下五子棋盤用稀疏數組保存,并有存盤退出和續上盤功能(文件輸入輸出)
實現思路
代碼實現
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位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的(数据结构与算法)稀疏数组案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (JavaWeb)IDEA中JDBC的使
- 下一篇: jsp中获取不到后台请求域中的值