题目
分析
25年4月25日,开始进入“图”的学习。本题是一道入门题目。图的遍历往往会牵涉到BFS和DFS。
邻接表
样本数据给出的图如下所示:
用邻接矩阵或者邻接表都可以表示图,但一般建议,在数据比较稀疏的情况下,用邻接表比较方便。
对于每个节点,它需要分配一个和它相连的节点的列表,因此数据结构是:vector<int> references[MAXN]
。对于图中节点1
来说,它的表示就是:references[1]={2, 3, 4}
。
对于每个节点i
来说,它所“关联”的列表是可以遍历、排序的。
这个图的DFS遍历是:1 2 5 6 3 7 8 4
,而BFS遍历则是1 2 3 4 5 6 7 8
。
代码并不复杂。
答案
思考
如果本题用邻接矩阵来做,应该如何改写数据结构,和相应的代码?