seegongsik
算法

什么是图 计算机

想想地铁线路图。车站是点,连接车站的线路是线。朋友关系、网页链接,也都能这样画。点和线,这就是图。

01

点是对象

图从点开始。一个点就是一个对象:车站、人、网页,什么都可以是点。
给点起个名字,这样才知道是哪一个点。
现在还没有线,只有零散的点。

点一下空位放一个点

点一下空白处,就放下一个点。一个点就是一个对象。(点 = 节点)

点放得越多,对象就越多。可只有点的话,不过是零散的颗粒。
就像车站各自孤零零地立着,构不成线路图。少的是点和点之间怎么相连。
下一步就来画这些连接。

02

线是关系

现在来把点连起来。用线连起两个点,意思是“这两个有关系”。
两个车站之间有线路,两个人是朋友,这个网页链接到那里。一条线就是一种关系。
点和线凑在一起,就成了图。

ABCDE
点一个点,再点另一个连起来

先点一个点,再点另一个点,就会出现一条线。一条线就是一种关系。(线 = 边)

线画得越多,点就越连成一体,零散的点终于成了线路图。
点是对象,线是关系。只靠这两样,就能画出世上数不清的东西。
其中还藏着一个我们已经认识的形状。

03

树是特别的图

图里可能会有环。从点 A 出发,顺着线走,又回到 A,那就是环。
一个环也没有的图,就是树:没有回头路,只像树枝一样往外伸。
所以树是图的一种。

ABCDE
红色虚线就是环。点一下把它剪掉

点一下构成环的那条线,把它剪断。环没了,就成了树。树 ⊂ 图。

剪断一个环,回头路就没了,看着乱成一团的图变成了整齐的树。
前面看过的文件夹、家谱,正是这样的树。
树是图的一种特例,换句话说,图是更大的那把伞。

04

图无处不在

戴上“点和线”这副眼镜,世界就不一样了。
地铁是车站(点)和线路(线),朋友圈是人(点)和友情(线),网络是网页(点)和链接(线)。
看起来毫不相干的东西,其实是同一幅画。所以解决了一个,其余的也一起解决了。

市厅江南蚕室新村
点 = 车站, 线 = 线路

点例子来切换。地铁、朋友圈、网络,都是同样的点和线。

换了例子,画的骨架还是一样:点是对象,线是关系,只是名牌变了。
正因为这样,图才特别有用:一件工具,就能画出世上数不清的问题。

05

总结

归成一句话:点是对象,线是关系,用点和线画成的画就是图。没有环的特别的图就是树。
地铁、朋友圈、网络,都能用点和线来画。
点和线都摆好了,剩下的问题只有一个:怎样在这些点之间走来走去?

1. 点 = 对象
2. 线 = 关系
3. 点 + 线 = 图
4. 树 = 没有环的图
按按钮,依次回顾要点

按顺序点要点来回顾。(点=对象 → 线=关系 → 图 → 树是没有环的图)

会画图了,真正的乐趣现在才开始。
从一个点出发,顺着线把所有的点都走一遍,这叫图的遍历;找最短的路,则在那之后。
下一课,我们就跟着看看怎样在点和线上穿行。

一句话总结图就是“用点(对象)和线(关系)画成的画”。点可以是任何东西,线是两者之间的关系。地铁、朋友圈、网络,都是图。树是其中没有环(循环)的特例,所以树也是图的一种。用点和线去看世界,看起来复杂的东西就一目了然了。
← 算法
如果有帮助,请支持我们