- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与工程学院 冯寅 Email:FengYin@xmu.edu.cn * 13.3 树 13.3.1 无向树 例13.9 显然有:(a)、(b)、(c)、(d)都是树,(e)是森林。其中(c)是平凡图,我们称之为平凡树,它的结点度数为0。而在任何非平凡树中,都无度数为0的结点。 树的性质 定理13.6 设G=V,E是一个简单无向图。则以 证明 采用循环论证方法。 即只需证1)?2)?3)?4)?5)?6)?1)即可。 证明 2)?3)用反证法。 若G不连通,设G中有k个连通分支(k?2)G1,G2,…,Gk, 证明 3)?4) ①、首先证明G中无回路。用第一数学归纳法证明,对n作归纳。 证明 4)?5) 若G不连通,则存在两个结点vi和vj,在vi和vj之间无 定理13.7 任意非平凡的树T=(n,m)中,至少有两片树叶。 13.3.2 生成树 定义13.4若连通图G的某个生成子图是一棵树, 例13.10 在上图中(b)、(c)所示的树T1、T2,它们都是图(a) 定理13.8 任意一个无向连通图G至少存在一棵生成子树。 求生成子树的方法 破圈法 每次去掉回路中的一条边,其去掉的边的总数为m-n+1。 避圈法 每次选取G中一条与已选取的边不构成回路的边,选取的边的总数为n-1。 例13.11 求下图(a)所示的图的生成子树。 例13.11(续) 例13.12 某地要建5个工厂,拟修筑道路连接这5处。经勘测其道路可依如a图的无向边铺设。为使这5处都有道路相通,问至少要铺设几条路?怎样铺设? 13.3.3 最小生成子树 定义13.5 设G=V,E是连通的赋权图,T是G 1.克鲁斯克尔算法 在G中选取最小权边e1,置i=1。 当i=n-1时,结束,否则转3)。 设已选取的边为e1,e2,…,ei,在G中选取不同于e1,e2,…,ei的边ei+1,使{e1,e2,…,ei,ei+1}中无回路且ei+1是满足此条件的最小权边。 置i=i+1,转2)。 例13.13 用克鲁斯克尔算法求下图a中赋权图的最小生 成树。 例13.13(续) w(T)=34 2.管梅谷算法 令G0=G,置i=0。 当i=m-n+1时,结束,否则Gi中含回路,转3)。 设C为Gi中的一条回路,ei为C上权值最大的边。 置Gi+1=Gi-ei,i=i+1,转2)。 例13.14 用管梅谷算法求下图a中赋权图的最小生成树。 例13.14(续) w(T)=34 3.逐步短接法 定义13.6 设vi,vj是无向图G=V,E中任意两个结点,将vi,vj合并成一个结点,记成v,称v为超点,使得与vi,vj关联的边均与v关联,这种作法称为vi与vj的短接。 在下图8中,图b是在图a中短接v1,v2后得到的图。 逐步短接法 置E=?。 设e是G中权值最小的边(若权值最小的边不惟一,就任选一条作为e)。将e的二端点vi与vj短接得超点v。删除边e(相当于将e作为生成树的树枝)后,所得图G中若含自回路就删除掉(相当于形成生成树的弦),置E=E∪{e}。 若G不是仅包含一个孤立结点的图(即G为非平凡图),那么置G=G,转2);否则,结束。这时共进行了n-1次短接,得n-1条树枝,m-n+1条弦,图V,E即为所求的最小生成树。 例13.15 用逐步短接法求下图a中赋权图的最小生成树。 例13.15(续) w(T)=34。 13.3.4 有向树 定义13.7 一个有向图,若略去所有有向边的方向所得到的无向图是一棵树,则称这个有向图为有向树。 根树 定义13.8 一棵非平凡的有向树,如果 恰有一个结点的入度为0,其余所有结点的 入度均为1,则称为根树或外向树。入度为 0的结点称为树根;出度为0的结点称为 树叶;入度为1,出度大于0的结点称为内 点;又将内点同树根统称为分支点。 倒置法 倒置法:把树根画在最上方,树叶画在下方,有向边的方向均指向下方,这样就可以省去全部箭头,不会发生误解。 有序树、子树 定义13.9 在根树中,若从vi到vj可达,则称vi是vj的祖先,vj是vi的后代;又若vi,vj是根树中的有向边,则称vi是vj的父亲,vj是vi的儿子;如果两个结点是同一个结点的儿子,则称这两个结点是兄弟。 定义13.10 如果在根树中规定了每一层上结点的次序,这样的根树称为有序树。 在有序树中同一层中结点的次序为从左至右。有时也可以用边的次序来代替结点的次序。 定义13.11 在根树T中,任一结点v及其所有后代导出的子图T称为T的以v为树根的子树。 m元树 定义13.12 在根树T中,若每个分支点至多 有m个儿子,则称T为m元树;若每个分支点都恰 有m个儿子,则称T为m元完全树;若m元树T是有 序的,则称T为m元有序树;若m元完全树T是有序 的,则称T为m元有序
文档评论(0)