一、本周计划
-
java继续学习
-
学习多维数组广义表
-
了解数组的行优先与列优先
-
稀疏矩阵与二维矩阵的相互转换
-
广义表计算长度深度表头表尾
二、成果
一、
稀疏矩阵与二维矩阵的相互转换
public class TestDemo {
public static int[][]trans(int[][]arr){
int count = 0;
for (int i = 0;i<10;i++){
for (int j = 0;j<10;j++){
if(arr[i][j]!=0){
count++;
}
}
}
int count1 = 0;
int[][] sparse = new int[count+1][3];
sparse[0][0] = arr.length;//需要知道原本有几行几列几个,这样才能恢复。
sparse[0][1] = arr[0].length;
sparse[0][2] = count;
for (int i =0;i<arr.length;i++){
for (int j =0;j<arr[0].length;j++){
if (arr[i][j]!=0){
count1++;
sparse[count1][0] = i;
sparse[count1][1] = j;
sparse[count1][2] = arr[i][j];
}
}
}
return sparse;
}
public static int[][]transback(int[][]arr) {
int[][] array = new int[arr[0][0]][arr[0][1]];
for (int i =1;i<arr.length;i++){
array[arr[i][0]][arr[i][1]] = arr[i][2];
}
return array;
}
public static void main(String[] args) {
int[][]arr = new int[10][10];
arr[3][5] = 6;
arr[0][1] = 7;
arr[9][9] = 8;
arr[8][6] = 18;
for(int i = 0;i<10;i++){//打印原始数组
for (int j = 0;j<10;j++){
System.out.print(arr[i][j]+" ");
}
System.out.println();
}
System.out.println();
int [][]sparse = trans(arr);
for (int i = 0;i<5;i++){
for (int j = 0;j<3;j++){
System.out.print(sparse[i][j]+" ");
}
System.out.println();
}
System.out.println();
int[][]array = transback(sparse);
for (int i = 0;i<10;i++){
for (int j =0;j<10;j++){
System.out.print(array[i][j]+" ");
}
System.out.println();
}
}
}
二、
广义表计算长度深度表头表尾
public int length(Node L) {
int n = 0;
L = L.next;
while(L!=null){
n++;
L = L.next;
}
return n;
}
public int depth(Node head){
int max = 0,dep = 0;
if (head.tag==0)return 0;
head = head.next;
if (head==null)return 1;
while(head!=null){
if (head.tag==1){
dep = depth(head);
if (dep>max){
max = dep;
}
}
head = head.next;
}
return max+1;
}
public GList getHead() {
if (isEmpty())
return null;
Node node = this.head.next;
GList g = new GList();
g.head.next = node.sublist;
return g;
}
public GList getTail() {
if (this.head==null)return null;
Node node = this.head.next;
GList g = new GList();
g.head.next = node.next;
return g;
}
三、学习情况
学习java的继承,多态,接口等
了解了java的异常,非受查异常与受查异常,自定义受查类还有try catch用法
广义表没有学完。
四、计划
认识String类,开始去做题。广义表整完。