• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

go数组转换为稀疏数组

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
package main

import "fmt"

type Node struct {
   Row   int
   Col   int
   Value int
}

// 稀疏数组
func main() {

   sparse := ToSparse()

   ToArray(sparse)
}

// ToArray 稀疏数组恢复
func ToArray(sparse []Node)  {

   var arr  [11][11]int

   for k, node := range sparse {
      if k != 0 {
         arr[node.Row][node.Col] = node.Value
      }
   }

   fmt.Println("恢复后的原始数据")
   for _, v := range arr {
      fmt.Println(v)
   }



}

// ToSparse 数组转换为稀疏数组
func ToSparse() []Node {
   const row = 11
   const col = 11

   // 1 创建一个原始数组 1 黑子 2 蓝子
   var chessMap [row][col]int

   chessMap[1][2] = 1
   chessMap[2][3] = 2
   // 2 输出查看原始数据
   for _, v := range chessMap {
      fmt.Println(v)
   }

   // 3 转为稀疏数组
   // 遍历chessMap 发现一个元素的值!=0 创建一个node结构体
   // 将其放入到切片中
   var sparseArr []Node
   // 加入规模 标准的稀疏数组 含有 行数 列数
   node0 := Node{
      Row:   row,
      Col:   col,
      Value: 0,
   }
   sparseArr = append(sparseArr, node0)

   for i, v := range chessMap {
      for j, v2 := range v {
         if v2 != 0 {
            // 创建一个节点
            var node = Node{
               Row:   i,
               Col:   j,
               Value: v2,
            }
            sparseArr = append(sparseArr, node)
         }
      }
   }

   // 4 输出查看原始数据
   for _, node := range sparseArr {
      fmt.Printf("%d %d %d \n",node.Row, node.Col, node.Value)
   }

   return sparseArr

[0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 0 0 2 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
11 11 0
1 2 1
2 3 2

恢复后的原始数据
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 1 0 0 0 0 0 0 0 0]
[0 0 0 2 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]
[0 0 0 0 0 0 0 0 0 0 0]


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
log4go的一些改进设想发布时间:2022-07-10
下一篇:
Go语言学习之14商品秒杀架构设计与开发发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap