图的言语优先完成
所谓图就是节点及其邻接相干的集结 。所以可以经由过程一个一维数组展示节点 ,编程外加一个二维数组展示节点之间的进修相干。
//图的完成矩阵完成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>