掌握知识:
数组的初始化和赋值结构体的初始化和赋值字符串和整型之间的转换以及其它的一些 *** 作类型断言读取文件写入文件对稀疏数组进行压缩package mainimport ( "bufio" fmtioosstrconvstrings" // "strconv")func originArr() [11][11]int { 创建原始数组 var chessMap [ chessMap[1][2] = 1 chessMap[2][3] = 2 return chessMap}func printArr(chessMap [) { 打印数组 for _,v1 := range chessMap { range v1 { fmt.Printf(%d\t",v2) } fmt.Println() }}存储行、列、值type valNode struct { row col int 这里是接口类型,所以值可以是任意类型,不仅仅包含整型和字符型 value interface{}}var sparseArr []valNodefunc doParseArr(chessMap [) []valNode { 稀疏数组 遍历数组,如果某个值不为零,则将其放置在对应的结构体中 val := valNode{ 原来数组的行和列以及值 row: 110初始化存储稀疏数组 sparseArr = append(sparseArr,val) for i,1)">for j,1)"> range v1 { if v2 != { val valNode val.row = i val.col = j val.value = v2 sparseArr = range sparseArr { fmt.Printf(第%d行,第%d列的值是%d\n",j.row,j.col,j.value.()) } sparseArr}func writeParseArr(sparseArr []valNode,filepath string将稀疏数组存储 file,err := os.Openfile(filepath,os.O_CREATE|os.O_APPEND|os.O_WRONLY,0666) if err != nil { } defer file.Close() range sparseArr { 因为读取到的整型,需要转为字符串再进行写入 将接口赋值给一个变量需要进行类型断言 str := strconv.Itoa(j.row) + " " + strconv.Itoa(j.col) + " + strconv.Itoa((j.value.(int))) + \n wriiter := bufio.NewWriter(file) wriiter.WriteString(str) wriiter.Flush() fmt.Printf("第%d行,第%d列的值是%d\n",j.value.(int)) }}func readParseArr(filepath string) (newChessMap [初始化数组 读取存储的文件,并将每行转成 file,os.O_RDONLY,1)"> } defer file.Close() reader := bufio.NewReader(file) for { str,err := reader.ReadString('') nil { } tmp := strings.Split(strings.TrimRight(str,1)">"),1)"> fmt.Println(strings.Split(strings.TrimRight(str,"\n")," ")) r,_ := strconv.Atoi(tmp[]) c,_ := strconv.Atoi(tmp[]) v,1)">2]) if r == { continue } newChessMap[r][c] = v if err == io.EOF { break } } newChessMap}func main() { chessMap := originArr() printArr(chessMap) sparseArr := doParseArr(chessMap) filepath := data.txt writeParseArr(sparseArr,filepath) newChessMap := readParseArr(filepath) printArr(newChessMap)}
data.txt
总结
以上是内存溢出为你收集整理的golang数据结构之稀疏数组全部内容,希望文章能够帮你解决golang数据结构之稀疏数组所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)