我想检查我对生成树的理解(对于无向图和连接图)是否正确。
从,我在线阅读的内容。生成树是图的子集,它包含图的顶点数量相同,但是边的数量最少。图还可以有许多不同的生成树。
我看过一些生成树及其图的图示,所以我尝试提出自己的例子。
因此,此图像显示了一个房屋形状的图形。如果要去除该房屋图中的一条边,那将是一棵生成树,因为存在从另一节点到另一节点的替代路径。
如果我确保两个节点之间仍然存在路径,我也有可能摆脱两个边缘。
我在这个假设中正确吗?
答案 0 :(得分:0)
否,您的假设不正确,因为您必须删除2条边才能生成生成树。删除一条边线将不起作用。
您的图片的房屋图有5个顶点和6个边。
具有def count(self):
k =[" l", " l", " l"," l"," l"," l"," l"," l"," l"," l"]
for x in range(9,0,-1):
self.test_var.set(k[x]*x)
顶点的树具有n
边,因此具有5个顶点的树需要具有4个边。
生成树不是一个棘手的对象,它实际上是它的名字。 n-1
因为它覆盖了所有顶点,而spanning
因为它是一棵树。
如果要删除单个边,则图形中仍然会有一个循环,因此它不能是树(根据定义,它是一个连接的无环图)。
这是一件事,当您要构建图的生成树时很容易发现,这是要删除(或保留)的边数。公式tree
始终保存在树中。
我建议您查看一棵树的全部the definitions and characterisations,记住多个树总是有用的,尤其是在树木方面。