所谓图就是节点及其邻接相干的集结。所以可以经由过程一个一维数组展示节点,编程外加一个二维数组展示节点之间的进修相干。
//图的完成矩阵完成typedef struct MGRAPH{ nodes int[]; //节点 edges int[][]; //边}mGraph;
可是对一些理论问题 ,其邻接矩阵中大年夜大年夜约存在除夜量的广度0值,此时可以经由过程邻接链表来展示稀少图,深度搜刮其数据筹划如图所示

其右边为图的言语优先展示图,右边为图的编程邻接链表。红字展示节点序号 ,进修链表中为与这个节点相连的完成节点,如1节点与2、广度5节点相连。深度搜刮因为在go中 ,言语优先可以很便外埠独霸数组来庖代链表,编程所以其链表筹划可以写为
package mainimport "fmt"type Node struct{ value int; //节点为int型};type Graph struct{ nodes []*Node edges map[Node][]*Node //邻接展示的进修无向图}个中 ,map为Go言语中的键值索引圭表类型,其定义格式为map[<op1>]<op2>