Go: Sparse Array

package main

import (
  "fmt"
)

type Node struct {
  row int
  col int
  val int
}

func main() {
  var vail [7][9]int
  vail[2][8] = 5
  vail[5][3] = 6
  for _, row := range vail {
    for _, v := range row {
      print(v, " ")
    }
    println()
  }
  var sparseArray []Node
  sparseArray = append(sparseArray, Node{
    row: len(vail),
    col: len(vail[0]),
  })
  for i, row := range vail {
    for j, v := range row {
      if v != 0 {
        sparseArray = append(sparseArray, Node{
          row: i,
          col: j,
          val: v,
        })
      }
    }
  }
  fmt.Println("当前的稀疏数组是:::::")

  for i, v := range sparseArray {
    fmt.Printf("%d: %d %d %d\n", i, v.row, v.col, v.val)
  }

  var vale = make([][]int, sparseArray[0].row)
  for i := 0; i < len(vale); i++ {
    vale[i] = make([]int, sparseArray[0].col)
  }

  for i, v := range sparseArray {
    if i != 0 {
      vale[v.row][v.col] = v.val
    }
  }
  fmt.Println(vale)
  for _, row := range vale {
    for _, v := range row {
      fmt.Print(v, " ")
    }
    println()
  }
}

 

posted @ 2022-05-23 16:03  ascertain  阅读(20)  评论(0编辑  收藏  举报