自然界中有很多事物可以用图来表示其间的关系,在电脑中可以通过处理图来解决实际问题,但是问题来了,
如何将实际问题转化为图可以表示的形式?
如何在计算机中存储图,有几种方式?
如果图只是体现了节点与节点间是否有关系,那么如果节点本身的内容就很重要,怎么存储?
第一个问题-图的输入
要想在计算机中创建一个图的数据结构,就得先把现有的图输入进去,那么现有的图用现在的按行输入的方式怎么表示呢?
下面是POJ中2386题对图的表示,其中10和12为下面图的长和宽
10 12
W........WW.
.WWW.....WWW
....WW...WW.
.........WW.
.........W..
..W......W..
.W.W.....WW.
W.W.W.....W.
.W.W......W.
..W.......W.
除了用上面这中直接的表示,也可以将问题用画图的方式呈现在纸上,
然后得出有多少个节点,有多少条边,那些节点之间有联系,,这个联系是单向的还是双向的,这个联系有没有权重,如果有的话,每个节点之间的权重是多少,
知道上面这些问题后,就可以按照上面的这些关键信息,组织代码,确定先输入什么再输入什么,确定怎么输入才能完整的记录一个图。
图的第一种存储方式-邻接矩阵
邻接矩阵的表示
邻接矩阵就像一个坐标轴上存在的点和线,纵轴和横轴是一样的数据,即用来表示节点数据的数组,如果某个点和另一个点有关系,就从该点的纵轴引出一条线,