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()
    
    	}
    
    }
    
    
  • 相关阅读:
    C语言第三次博客作业单层循环结构
    C语言字符数组
    C语言第一次作业
    C语言作业函数
    C语言嵌套循环
    C语言第二次作业分支结构
    C语言作业数组
    1712新生素拓活动总结
    C语言第0次作业
    C语言作业数据类型
  • 原文地址:https://www.cnblogs.com/egrep/p/11536732.html
Copyright © 2011-2022 走看看