跳到正文

5.5 哈夫曼树、并查集·综合题讲评

40 分钟

5.5 综合题:最小生成过程与动态连通

哈夫曼和 Kruskal 都体现贪心,但选择对象不同:哈夫曼反复合并最小权值树;Kruskal 按边权递增扫描,用并查集判断端点是否已连通,只有连接不同集合的边才加入,避免成环。

手工推演

顶点 A,B,C,D,边 AB1、BC2、AC3、CD4。初始四集合;选 AB 后合并 A/B,选 BC 后合并 AB/C;AC 两端已同集故跳过;选 CD 合并 D,最终三条边权和 7。

结构与代码

Kruskal 排序 ,并查集操作近似常数。代码应对每条边先 ra=find(u),rb=find(v),仅 ra!=rb 时选边并合并;选满 条可停止,未选满说明图不连通。

错解反馈

看到小权边就选却不查环;合并端点而非根造成集合结构错误;把图不连通时得到的生成森林仍称最小生成树。

迁移练习

对边 01:1、12:2、02:2、23:5 手推 Kruskal。答案先01,再12或02之一,跳过另一条成环边,再23,总权8。独立验收:每步记录集合划分和选择理由。

小纸条

对边 01:1、12:2、02:2、23:5 手推 Kruskal?

登录 后可看答案

Practice

本课练习

0

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

本课练习正在补齐,暂不应标记为完成。