前端之数据结构(六)图
上一章介绍了树的另一种形态二叉树,并说了递归版的先中后序遍历。
这一章就来介绍一下图这种数据结构。
图
图是
网络结构
的抽象模型,是一组由边
连接的节点
。图可以表示任何二元关系,比如道路、航班......
JS
中没有图,但是可以用Object
和Array
构建图。图的表示法: 邻接矩阵、邻接表、关联矩阵......
图的表示法
如下图:
邻接矩阵
用邻接矩阵可以如下表示:
每两个交叉点为 1 的,就代表这两个点链接。
邻接表
用邻接表可以如下表示:
每个点代表相应的 key
,而每个 key
所包含的点,就是它们相连的点。
图的常用操作
深度优先遍历:尽可能深的搜索图的分支。
广度优先遍历:先访问离根节点最近的节点。
下图
通过代码表示如下:
复制代码
深度优先遍历
访问根节点
对根节点的
通过如下代码进行深度优先遍历:
复制代码
广度优先遍历
新建一个队列,把根节点入队。
把队头出队并访问。
把对头的
没访问过的相邻节点
入队。重复第二三步,直到队列为空。
通过如下代码进行广度优先遍历:
复制代码
End~~~
评论