算法导论22.3-1

  • 问题描述
    画出一个3*3的网格,行列的抬头分别标记为白色、灰色和黑色。对于每个表格单元(i,j),请指出在对有向图进行深度优先搜索的过程中,是否可能存在一条边,连接一个颜色为i的结点和一个颜色为j的结点。对于每种可能的边,指明该种边的类型。另外,请针对无向图的深度优先搜索在制作一张这样的网格。
  • 问题求解
    深度优先搜索可以对输入图的边进行分类:
    树边:在深度优先森林 Gπ 中的边。
    后向边:结点u连接到其在深度优先树中的一个祖先结点v的边。
    前向边:将结点u连接到其在深度优先树中的一个后代结点v的边。
    横向边:其他所有的边,包括连接同一棵深度优先树中的结点(其中一个结点不是另外一个结点的祖先),和连接不同深度优先树中的两个结点。
    ①对于有向图
起(u)\止(v)
所有可能后,横
前,横树,后,前树,前,横
横,后所有可能

A12: 因为v结点先与u结点被发现,所以n->v边不在树中,且不可能是前向边。
A13: v.d< v.f< u.d< u.f,则[u.d,u.f]与[v.d,v.f]完全分离,此时u->v是横边。
A21: u.d< v.d,那么有两种情况,如果u.f< v.d,则[u.d,u.f]与[v.d,v.f]完全分离,此时u->是横边;如果u.f>v.d,则 [v.d,v.f][u.d,u.f] ,此时v是u的后代,u->v是前向边。
A22: 由于u和v都是灰色,可以肯定它们都处于一棵深度优先树的一条路径中,不可能是横向边。
A23: u.f>v.f ,所以v不可能是u的祖先,因此u->v不可能是后向边。
A31: u.d< v.d< u.f< v.f,则[u.d,u.f]与[v.d,v.f]完全分离,此时u->是横边。
A32: u.f< v.f。那么有两种情况,如果v.d>u.f,则[u.d,u.f]与[v.d,v.f]完全分离,此时u->是横边;如果v.d< u.f,则 [u.d,u.f][v.d,v.f] ,此时u->v是后向边。
而其他情况都是可以取到树边、后向边、前向边和横边的,最终得到的结果如上表所示。
②对于无向图
对于树边,后向边,前向边,连个结点可以是任意颜色。只有横边不能取两个灰色结点,所以有下标:

(空)
所有可能所有可能所有可能
所有可能树,后,前所有可能
所有可能所有可能所有可能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值