package main

import "fmt"

type MultipleEdgeNode struct {
iVex int
iLink *MultipleEdgeNode
jVex int
jLink *MultipleEdgeNode
} type MultipleVertexNode struct {
data interface{}
firstEdge *MultipleEdgeNode
} type GraphMultipleAdjList struct {
adjList []MultipleVertexNode
numVertexes, numEdges int
} func CreateMultipleALGraph(g *GraphMultipleAdjList) {
var i,j int fmt.Println("输入顶点数和边数")
_, err := fmt.Scan(&g.numVertexes, &g.numEdges)
if err != nil {
panic(err)
}
g.adjList = make([]MultipleVertexNode, g.numVertexes)
// 读入顶点信息
for i := 0; i < g.numVertexes; i++ {
_, err = fmt.Scan(&g.adjList[i].data)
if err != nil {
panic(err)
} }
// 建立边表
for k := 0; k < g.numEdges; k++ {
fmt.Println("输入边(vi, vj)上的顶点序号:")
_, err := fmt.Scan(&i,&j)
if err != nil {
panic(err)
}
e := &MultipleEdgeNode{
iVex:i,
jVex:j,
}
gIFirst := g.adjList[i].firstEdge if gIFirst == nil {
g.adjList[i].firstEdge = e
}else {
e.iLink = gIFirst
g.adjList[i].firstEdge = e
} gJFirst := g.adjList[j].firstEdge
if gJFirst == nil {
g.adjList[j].firstEdge = e
}else {
e.jLink = gJFirst
g.adjList[j].firstEdge = e
} }
}

  

golang 无向简单图邻接多重表的更多相关文章

  1. 图的邻接多重表和搜索(C++版本)

    最近在学数据结构,学到图这一章,网上的C++版本的代码乱得不行,所以自己写了一个完整C++版本的放这里. 用邻接多重表表示一个无向图,并给出DFS和BFS搜索代码.邻接多重表好处就是贼直观,几条边就几 ...

  2. 图->存储结构->邻接多重表

    文字描述 邻接多重表是无向图的另一种链式存储结构. 虽然邻接表是无向图的一种很有效的存储结构,在邻接表中容易求得顶点和边的各种信息. 但是,在邻接表中每一条边(vi,vj)有两个结点,分别在第i个和第 ...

  3. SQL 农经权数据库问题提取_身份证号码相同(字段值出现多次);身份证号码相同但姓名不同(A字段相同,B字段不相同);发包方无承包方信息(A表有,B表无)等

    身份证号码相同(字段值出现多次) select * from CBF_JTCY a,(select CYZJHM, count(*) from CBF_JTCY  group by  CYZJHM h ...

  4. golang 无缓冲channel

    golang 无缓冲channel package main import "fmt" func main() { // 1S =1000ms //1ms = 1000us //1 ...

  5. 【mybatis】mybatis查询 结果 用map接收,无实体接收 + 关联子表 一并返回主子表的结果

    如果后台程序没有实体对应mysql的数据表. 而mybatis想要查询mysql这个数据表的数据,返回给应用程序. 应用程序该如何接收? =============================== ...

  6. Golang 实现 Redis(5): 用跳表实现SortedSet

    本文是使用 golang 实现 redis 系列的第五篇, 将介绍如何使用跳表实现有序集合(SortedSet)的相关功能. 跳表(skiplist) 是 Redis 中 SortedSet 数据结构 ...

  7. Golang 实现 Redis(5): 使用跳表实现 SortedSet

    本文是使用 golang 实现 redis 系列的第五篇, 将介绍如何使用跳表实现有序集合(SortedSet)的相关功能. 跳表(skiplist) 是 Redis 中 SortedSet 数据结构 ...

  8. [Go] golang无缓冲通道实现工作池控制并发

    展示如何使用无缓冲的通道创建一个goroutine池,控制并发频率1.无缓冲通道保证了两个goroutine之间的数据交换2.当所有的goroutine都忙的时候,能够及时通过通道告知调用者3.无缓冲 ...

  9. ajax无刷新方式对form表单进行赋值!

    /** * 把json数据填充到from表单中 */ <form id="editForm" action="user.php"> 用户名:< ...

  10. golang 二维平面求多重遮挡三角形总面积

    解决问题描述:二维平面有很多三角形错落,可能会相互叠加落在一起,也可能互相远离.目标求出这些三角形的总占地面积. 我最开始想的解决方案是用总面积-总重叠面积 = 总占地面积.后来实现起来发现当面临多次 ...

随机推荐

  1. APM vs NPM

    概述 APM:Application Performance Monitoring 的简称,即应用性能监控. NPM:Network Performance Monitoring 的简称,即网络性能监 ...

  2. 二、Unity调用Xcode封装方法

    1.开始封装Unity调用接口 我们在Xcode中 写的接口需要在extern "C"中(加上extern "C"后,会指示编译器这部分代码按C语言的进行编译) ...

  3. 直播预告丨 Hello HarmonyOS 进阶课程第五课——原子化服务

    本周三<Hello HarmonyOS 系列应用篇:原子化服务>,HDE 李洋老师将带领大家了解 HarmonyOS 原子化服务的技术特性与创新性,对智能家居.智慧出行.运动健康.智慧办公 ...

  4. IIS 加载32dll失败

    前言 遇到一个这样的问题,因为在一个项目中是32位的,至于为什么是32位的呢,因为调用的都是老库,32位的,部署到iis出现错误如下: Server Error in '/' Application. ...

  5. (节流)js防止重复频繁点击或者点击过快方法

    1.方法一:用定时器定时,没跑完定时器,点击按钮无效 <script> var isClick = true; $("button").on("click&q ...

  6. MySQL正则表达式:REGEXP 和 LIKE

    正则表达式作用: 根据指定的匹配模式匹配文中符合要求的特殊字符. REGEXP : ①操作符中常用的匹配列表: ②匹配特殊字符使用\\进行转义 \\.   能够匹配 . \\f   换页 \\n 换行 ...

  7. 力扣647(java)-回文子串(中等)

    题目: 给你一个字符串 s ,请你统计并返回这个字符串中 回文子串 的数目. 回文字符串 是正着读和倒过来读一样的字符串. 子字符串 是字符串中的由连续字符组成的一个序列. 具有不同开始位置或结束位置 ...

  8. App隐私合规“免费”自动化检测

    简介: App隐私合规检测提供了全面的隐私合规检测报告和专家建议,从确保形式合规(隐私政策文本合规性)及实质合规(代码层合规性)的一致性,从个人信息收集.权限使用场景.超范围采集.隐私政策.三方SDK ...

  9. Apsara Stack 技术百科 | 标准化的云时代:一云多芯

    ​简介:随着今年云栖大会现场平头哥的自研云芯片倚天710发布,以及众多新兴厂商的芯片发布,将有越来越多的类型芯片进入到主流市场,"多芯"的架构将在数据中心中越来越常见,阿里云混合云 ...

  10. 伴鱼:借助 Flink 完成机器学习特征系统的升级

    ​简介: Flink 用于机器学习特征工程,解决了特征上线难的问题:以及 SQL + Python UDF 如何用于生产实践. 本文作者陈易生,介绍了伴鱼平台机器学习特征系统的升级,在架构上,从 Sp ...