- 1
- 0
- 约1.4万字
- 约 80页
- 2017-10-02 发布于广东
- 举报
数据结构与算法--第25讲图2
* * * * * * * * * * * * * * * zhejiang University Online Judge 在同一个强连通分量里的所有的马之间是互相仰慕的,我们将其缩为一点,并且只记录这一点的马的数量,如果有最受欢迎的马存在,那么这个图将是连通图,并且出度为零的点只有一个,我们可以用并查集来判是否连通,然后计算每个节点的出度,即可求出最受欢迎的马的数量。 输入: 3 3 1 2 2 1 2 3 输出: 1 3 2 1 5 编码实现 5.1 Kruskal算法 class KruskalForest // Kruskal森林类 { private: int *treeNo; // 顶点所在的树编号 int vexNum; // 顶点数 public: KruskalForest(int num = DEFAULT_SIZE); ~KruskalForest(){ delete []treeNo; }; bool IsSameTree(int v1, int v2); // 判断v1和v2是否在同一棵树上 void Union(int v1, int v2); // 将v2所在树的所有顶点合并到v1所在树上 }; 5 编码实现 5.1 Kruskal算法 KruskalForest::KruskalForest(int num) // 操作结果:构造顶点数为num的Kruskal森林 { vexNum = num; // 顶点数 treeNo = new int[vexNum];// 分配存储空间 for (int v = 0; v vexNum; v++) { // 初始时,每棵树只有一个顶点,树的个数与顶点个数相同 treeNo[v] = v; } } 5 编码实现 5.1 Kruskal算法 bool KruskalForest::IsSameTree(int v1, int v2) // 操作结果:如果v1和v2在同一棵树上,则返回true,否则返回false { return treeNo[v1] == treeNo[v2]; } 5 编码实现 5.1 Kruskal算法 void KruskalForest::Union(int v1, int v2) // 操作结果:将v2所在树的所有顶点合并到v1所在树上 { int v1TNo = treeNo[v1], v2TNo = treeNo[v2]; for (int v = 0; v vexNum; v++) { // 查找v2所在树的顶点 if (treeNo[v] == v2TNo) { // // 将v2所在树上的顶点所在树编号改为v1所在树的编号 treeNo[v] = v1TNo; } } } 5 编码实现 5.1 Kruskal算法 // Kruskal边类 template class WeightType class KruskalEdge { public: int vertex1, vertex2; // 边的顶点 WeightType weight; // 边的权值 KruskalEdge(int v1 = -1, int v2 = -1, int w = 0); // 构造函数 }; 5 编码实现 5.1 Kruskal算法 template class WeightType void Sort(KruskalEdgeWeightType *a, int n) // 操作结果:按权值对边进行升序排序 { for (int i = n - 1; i 0; i--) for (int j = 0; j i; j++) if (a[j].weight a[j + 1].weight) { // 出现逆序,则交换a[j]与a[j + 1] KruskalEdgeWeightType tmpEdge; // 临时边 tmpEdge = a[j]; a[j] = a[j + 1]; a[j + 1] = tmpEdge; } } 5 编码实现 5.1 Kruskal算法 template class ElemType, class WeightType void MiniSpanTreeKruskal(const AdjListUndirNetworkElemType, WeightType net) // 初始条件:存在网net // 操作结果:用Kruskal算法构造网net的最小代价生成树 { int coun
您可能关注的文档
- 大学物理第一章运动学(v2).ppt
- 大学物理第一部分粒子系统之第六章热力学基础.ppt
- 大学物理第三版第三章狭义相对论3.ppt
- 大学物理第九章电磁感应电磁场理论的基本概念.ppt
- 大学物理课件第9章稳恒磁场.ppt
- 大学物理第十四章相对论基础.ppt
- 大学物理:第11章静电场.ppt
- 大学科技文阅读课件unit2.ppt
- 大学计算机基础--第4章计算机网络基础.ppt
- 大连理工大学,自然辩证法课件第三章马克思主义科学技术方法论1.ppt
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 辽宁省 新民县志.pdf
- 2026年上海市奉贤区高三语文一模试题及答案.pdf VIP
- 夏季高温施工专项方案.doc VIP
- 第五届大学生节能减排大赛社会调查报告类作品.doc VIP
- TCCSAS 061-2025 特殊作业监护人履责管理要求.pdf VIP
- (一模)东北三省三校2026年高三第一次联合模拟考试 生物试卷(含答案).docx
- 2025年广东省深圳市中考数学试卷(附参考答案).pdf VIP
- (一模)东北三省三校2026年高三第一次联合模拟考试 化学试卷(含答案).pdf
- 【雷赛】DMC1000&B用户手册V2.1.pdf VIP
- (一模)东北三省三校2026年高三第一次联合模拟考试 物理试卷(含答案详解).pdf
原创力文档

文档评论(0)