zoukankan      html  css  js  c++  java
  • 稀疏数组

    稀疏数组

    package main
    
    import "fmt"
    
    type ValueNode struct {
    	Row int
    	Cloumn int
    	Value int
    }
    
    type ValueNodeSlice []ValueNode
    func main() {
    //	1.先创建一个原始数组
    	var ChessMap [11][11]int
    	ChessMap[1][2] = 1 //黑棋
    	ChessMap[2][3]=2 // 蓝棋
    //	2.输入看看原始的数组
    	for _,v :=range ChessMap{
    		for _,v2 :=range v{
    			fmt.Printf("%d	",v2)
    		}
    		fmt.Println()
    
    	}
    
    		var valueNodeSlice ValueNodeSlice
    		valueNodeSlice = append(valueNodeSlice,ValueNode{Row:11,Cloumn:11})
    		//fmt.Println(valueNodeSlice)
    
    		for i,v :=range ChessMap{
    			for i1,v2 :=range v{
    				if v2 != 0 {
    					var valuenode ValueNode =ValueNode{i,i1,v2}
    					valueNodeSlice=append(valueNodeSlice,valuenode)
    				}
    			}
    		}
    		
    		#打印稀疏数组
    		for i,v :=range valueNodeSlice{
    			fmt.Printf("%d: %d %d %d
    ",i,v.Row,v.Cloumn,v.Value)
    		}
    
    		fmt.Println()
    		
    		#稀疏数组恢复成老的数组
    		fmt.Println("Recover Array")
    		var SparseArray2 [11][11]int
    		for i,v :=range valueNodeSlice{
    			if i == 0 {
    				continue
    			}
    			SparseArray2[v.Row][v.Cloumn] = v.Value
    		}
    	
    	for _,v :=range SparseArray2{
    		for _,v2 :=range v{
    			fmt.Printf("%d	",v2)
    		}
    		fmt.Println()
    
    	}
    
    }
    
    
  • 相关阅读:
    Nginx 日志切割-定时(附数据库数据备份)
    安装Nginx
    系统自适应限流
    黑名名单控制-sentinel
    热点参数的流量控制
    流量控制文档说明
    在Linux中输入命令时打错并按了enter
    配置maven环境
    项目层次展示
    寻找cmd的管理员运行
  • 原文地址:https://www.cnblogs.com/egrep/p/11536732.html
Copyright © 2011-2022 走看看