go语言实现 数据结构 图以及图的遍历

学习c++算法的时候到了图这里就卡住了,学go的时候又重新拿起了书,曾经回过头的南墙,有一天还是会想再撞一撞。

go语言实现 数据结构 图以及图的遍历

利用深度优先搜索来遍历图

package main

import "fmt"

var vertex = 5
var edge = 5
var sum int
var book[10]int
var arr[10][10]int

func dfs(n int){
    fmt.Println(n)
    sum++
    if sum == vertex {return}
    for i:=1; i<=vertex; i++ {
        if arr[n][i]==1 && book[i]==0 {
            book[i] = 1
            dfs(i)
        }
    }
}

func main(){
    var x , y int
    //初始化二维数组
    for i:=1; i<=vertex; i++    {
        for j:=1; j<=vertex; j++ {
            if i==j {
                arr[i][j]=0
            }else{
                arr[i][j]=9
            }
        }
    }
    //读入边
    for i:=1; i<=edge; i++ {
        fmt.Scan(&x,&y)
        arr[x][y]=1
        arr[y][x]=1
    }
    //从节点1开始遍历
    book[1]=1
    dfs(1)
}

go语言实现 数据结构 图以及图的遍历

用excel表格做了一个dfs函数运行过程的推导,深度优先搜索遍历的最终结果是1,2,4,3,5

标签: go语言

移动端可扫我直达哦~

推荐阅读

thumbnail 2026-06-04

go语言gin框架的学习笔记

上半年尝试制作了一个微信小程序,通过小程序请求后台服务器,服务器负责组装好用户需求的mp3文件,然后返回给用户播放地址,以实现一个简单的听写功能。其中后台的逻辑基本都是通过deepseek实现的,虽然成功跑通了,但是一直想从头手搓一遍...

少儿编程 go语言

thumbnail 2026-06-02

提升读写性能,go语言的bufio包

最近在尝试学习go语言,想去洛谷做几道题吧,结果前几个答案是正确的,最后两个报了超时,标准输入输出fmt存在读写性能上的缺陷。deepseek推荐了这个bufio包。bufio 包的核心功能bufio 提供缓冲 I/O,通过减少系统调...

少儿编程 go语言

thumbnail 2026-05-30

fmt,Go 语言自带的格式化输入输出包

fmt 可以理解为 Format(格式)的缩写——因为它擅长格式化数据(比如把数字嵌进句子中间)。fmt 就是 Go 语言的"终端对话工具",让你能在屏幕上显示东西,也能从键盘获取输入。fmt包的常用指令 概念对应 fmt 函数标准输...

少儿编程 go语言

thumbnail 2026-05-27

乱点技能树之-go语言笔记篇

系统仍旧是廉颇老矣的windows7,所以很多软件的新版本都没法运行,就像go已经出到了1.26版本,但win7上仅支持1.20.14,再往上就不受支持了,所以下方的代表仅在上述版本中验证通过。学习go语言的第一感受是,go语言取消了...

少儿编程 go语言