数据结构---------稀疏数组(笔记)
2020-03-08 11:39
791 查看
稀疏数组
1.记录数组的大小,有多少个有效值
2.把有效数据的行列存储到稀疏数组中
public class Sparsearray { public static void main(String[] args) { int chessArr1[][] = new int[11][11]; chessArr1[1][2] = 1; chessArr1[2][3] = 2; //二维数组转稀疏数组 int[][] sparseArr = Sconud2Sparsearray(chessArr1); traversal(sparseArr);//遍历稀疏数组 //稀疏数组转二维数组 int[][] sconudArr = Sparsearray2Sconud(sparseArr); traversal(sconudArr);//遍历稀疏数组 } //稀疏数组转二维数组 public static int[][] Sparsearray2Sconud(int[][] sperseArr){ int chessArr2[][] = new int[sperseArr[0][0]][sperseArr[0][1]]; for (int i = 1; i < sperseArr.length; i++) { chessArr2[sperseArr[i][0]][sperseArr[i][1]] = sperseArr[i][2]; } return chessArr2; } //遍历函数 public static void traversal(int[][] array){ for (int[] row:array) { for (int data:row) { System.out.printf("%d\t",data); } System.out.println(); } } //二维数组转稀疏数组 public static int[][] Sconud2Sparsearray(int[][] chessArr1){ //遍历,查看非0数据 int sum = 0; for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j]!=0){ sum++; } } } //创建对应的稀疏数组 int sparseArr[][] = new int[sum+1][3]; sparseArr[0][0] = 11; sparseArr[0][1] = 11; sparseArr[0][2] = sum; int count = 0;//记录有效数据的行数 for (int i = 0; i < 11; i++) { for (int j = 0; j < 11; j++) { if (chessArr1[i][j]!=0){ count++; sparseArr[count][0] = i; sparseArr[count][1] = j; sparseArr[count][2] = chessArr1[i][j]; } } } return sparseArr; } }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 1.[数据结构和算法分析笔记]数组
- 数据结构实验之数组二:稀疏矩阵
- #数据结构与算法学习笔记#剑指Offer1:二维数组中的查找(JAVA)
- 数据结构实验之数组二:稀疏矩阵
- 【数据结构与算法学习笔记】PART3 线性结构(除向量外,数组、栈、队列、链表)
- 数据结构实验之数组二:稀疏矩阵
- SDUT 3348 数据结构实验之数组二:稀疏矩阵
- Scala笔记整理(二):Scala数据结构—数组、map与tuple
- 数据结构- 稀疏数组处理
- 数据结构实验之数组二:稀疏矩阵
- 数据结构——稀疏数组
- SDUTACM 数据结构实验之数组二:稀疏矩阵
- SDUTOJ(3348)数据结构实验之数组二:稀疏矩阵
- Java之数据结构基础、线性表、栈和队列、数组和字符串,树—学习笔记
- php学习笔记数组与数据结构1(数组)
- 数据结构与算法学习笔记——链表部分实现(数组形式)
- 数据结构- 稀疏数组处理
- 数据结构之稀疏sparsearry数组
- 数据结构实验之数组二:稀疏矩阵
- C++学习笔记2--函数重载 复杂的数据 内存对齐 指针数组 结构与指针 传值传址传引用 联合枚举类型别名