树与图的遍历
-时间复杂度:O(n+m)
-存储:
可用vector,但效率不如自己模拟
-用宽搜框架搜索图
queue ← 1
while queue 不空
{
t← 队头
拓展t所有结点x
if(x未遍历){
queue← x,
d[x] = d[t]+1;
}
}
-图的宽搜应用
有向图的拓扑序列
拓扑序列:对于每条边,起点都在终点前面
一个有向无环图一定存在拓扑序列,被称为拓扑图
顺序:前 → 后, 前无点
所有入度为0的点均可作为起点
入度 | 出度 | |
---|---|---|
1 | 0 | 2 |
2 | 1 | 1 |
3 | 2 | 0 |
有向无环图(拓扑图)一定至少存在一个入度为0的点
拓扑序不一定唯一
queue ← 所有入度为0的点
while queue 不空
{
t ← 队头
枚举所有出边 t → j
删掉 t → j , d[j] --; //d[j] 表示 j 的入度
if( d[j] == 0)
queue ← j;
}
1.12小结
-
《算法基础课》
-
牛客两题