什么是图 计算机
想想地铁线路图。车站是点,连接车站的线路是线。朋友关系、网页链接,也都能这样画。点和线,这就是图。
点是对象
图从点开始。一个点就是一个对象:车站、人、网页,什么都可以是点。
给点起个名字,这样才知道是哪一个点。
现在还没有线,只有零散的点。
点一下空白处,就放下一个点。一个点就是一个对象。(点 = 节点)
点放得越多,对象就越多。可只有点的话,不过是零散的颗粒。
就像车站各自孤零零地立着,构不成线路图。少的是点和点之间怎么相连。
下一步就来画这些连接。
线是关系
现在来把点连起来。用线连起两个点,意思是“这两个有关系”。
两个车站之间有线路,两个人是朋友,这个网页链接到那里。一条线就是一种关系。
点和线凑在一起,就成了图。
先点一个点,再点另一个点,就会出现一条线。一条线就是一种关系。(线 = 边)
线画得越多,点就越连成一体,零散的点终于成了线路图。
点是对象,线是关系。只靠这两样,就能画出世上数不清的东西。
其中还藏着一个我们已经认识的形状。
树是特别的图
图里可能会有环。从点 A 出发,顺着线走,又回到 A,那就是环。
一个环也没有的图,就是树:没有回头路,只像树枝一样往外伸。
所以树是图的一种。
点一下构成环的那条线,把它剪断。环没了,就成了树。树 ⊂ 图。
剪断一个环,回头路就没了,看着乱成一团的图变成了整齐的树。
前面看过的文件夹、家谱,正是这样的树。
树是图的一种特例,换句话说,图是更大的那把伞。
图无处不在
戴上“点和线”这副眼镜,世界就不一样了。
地铁是车站(点)和线路(线),朋友圈是人(点)和友情(线),网络是网页(点)和链接(线)。
看起来毫不相干的东西,其实是同一幅画。所以解决了一个,其余的也一起解决了。
点例子来切换。地铁、朋友圈、网络,都是同样的点和线。
换了例子,画的骨架还是一样:点是对象,线是关系,只是名牌变了。
正因为这样,图才特别有用:一件工具,就能画出世上数不清的问题。
总结
归成一句话:点是对象,线是关系,用点和线画成的画就是图。没有环的特别的图就是树。
地铁、朋友圈、网络,都能用点和线来画。
点和线都摆好了,剩下的问题只有一个:怎样在这些点之间走来走去?
按顺序点要点来回顾。(点=对象 → 线=关系 → 图 → 树是没有环的图)
会画图了,真正的乐趣现在才开始。
从一个点出发,顺着线把所有的点都走一遍,这叫图的遍历;找最短的路,则在那之后。
下一课,我们就跟着看看怎样在点和线上穿行。