东方博宜OJ 2053:图的 bfs 遍历 ← bfs + 链式前向星 / 邻接矩阵
【题目来源】
【题目描述】
一个有 n 个结点的无向连通图,这些结点以编号:1,2,...,n 进行编号,现给出结点间的连接关系。
请以结点 1 为起点,按广度优先搜索(bfs)、优先访问小编号结点的顺序遍历并输出该图。
【输入格式】
第一行为两整数,n 和 e,表示 n 个顶点,e 条边。(2≤n,e≤10)
以下 e 行每行两个数,表示两个结点是连通的。
【输出格式】
只有一行,为节点按照广度优先、小编号结点优先访问的结果。
【输入样例】
5 7
1 2
1 3
1 4
2 4
2 5
3 5
4 5
【输出样例】
1 2 3 4 5
【数据范围】
2≤n,e≤10
【算法分析】
● 链式前向星:
大佬 yxc 指出“链式前向星”就是“多单链表”,每条单链表基于“头插法”并用 e[]、ne[]、h[] 、val[] 等数组进行模拟创建。其中:
e[idx]:存储序号为 idx 的边的终点值
ne[idx]:存储序号为 idx 的边指向的边的序号(模拟链表指针)
h[a]:存储头结点 a 指向的边的序号
val[idx]:存储序号为 idx 的边的权值(可选)
【算法代码一:链式前向星】
本代码需注意的是“小编号结点优先访问”。
请详阅代码,注意实现技巧。特别注意第 20 行的 vector<int> v; 以及第 26 行的 sort(v.begin(),v.end());。
【算法代码二:邻接矩阵】
【参考文献】

浙公网安备 33010602011771号