prime算法的运用

devtools/2024/11/22 15:39:13/

确定初始点为初始前驱

每次遍历前驱为已经被访问的点

后继是已被访问点的相邻未被访问的点

是否被访问用标记数组标记

#include<iostream>
#include<cmath>
#define MaxInt 10000000
#define MVnum 100
using namespace std;
int arcs[6][6] = {0,6,1,5,MaxInt,MaxInt,6,0,5,MaxInt,3,MaxInt,1,5,0,5,6,4,5,MaxInt,5,0,MaxInt,2,MaxInt,3,6,MaxInt,0,6,MaxInt,MaxInt,4,2,6,0
};
bool isFull(bool visited[], int vexnum) {for (int i = 0; i < vexnum; i++) {if (!visited[i]) {return false;}}
}
void prim(bool visited[], int v, int vexnum) {visited[v] = true;while (!isFull(visited, vexnum)) {//当未完全访问,继续访问int temp = MaxInt;int temp_pos_i = 0, temp_pos_j = 0;bool flag = false;for (int i = 0; i < vexnum; i++) {if (visited[i]) {//前驱已经被访问for (int j = 0; j < vexnum; j++) {if (!visited[j] && arcs[i][j] > 0 && arcs[i][j] < temp) {//寻找后继未被访问,边权值大于0,且最小temp = arcs[i][j];temp_pos_i = i;temp_pos_j = j;flag = true;}}}}if (flag) {//后继未被访问,边权值大于0,且最小,输出边visited[temp_pos_j] = true;cout << "加点 " << temp_pos_i + 1 << " 到点 " << temp_pos_j  + 1<< "边" << endl;}}
}
int main() {int vexnum = 6, arcnum = 10;bool visited[MVnum] = { false };int v = 1;//访问起点prim(visited, v-1, vexnum);return 0;
}


http://www.ppmy.cn/devtools/136044.html

相关文章

3.langchain中的prompt模板 (few shot examples in chat models)

本教程将介绍如何使用LangChain库和智谱清言的 GLM-4-Plus 模型来理解和推理一个自定义的运算符&#xff08;例如使用鹦鹉表情符号&#x1f99c;&#xff09;。我们将通过一系列示例来训练模型&#xff0c;使其能够理解和推断该运算符的含义。 环境准备 首先&#xff0c;确保…

02 —— Webpack 修改入口和出口

概念 | webpack 中文文档 | webpack中文文档 | webpack中文网 修改入口 webpack.config.js &#xff08;放在项目根目录下&#xff09; module.exports {//entry设置入口起点的文件路径entry: ./path/to/my/entry/file.js, }; 修改出口 webpack.config.js const path r…

【网络安全 | 漏洞挖掘】未授权获取AI聊天内容

未经许可,不得转载。 文章目录 两天前,我收到了一项私人项目的邀请,内容看起来像是一个聊天机器人,类似于 Gemini 或 ChatGPT。于是我开始测试该项目的一些业务逻辑漏洞和 IDOR(不当访问控制)漏洞。尽管这个产品拥有一个强大的安全团队,网站上也部署了 WAF(Web 应用防火…

PIXHAWK(ardupilot4.52)单ic通道输出pwm

可以看到飞控具有16个ic输出通道&#xff0c;理论上每一个通道都可以单独输出pwm&#xff0c;那么怎样才能在固件中让每个通道都单独输出pwm呢&#xff1f; 1、 手动模式下油门控制可以直观的控制pwm输出&#xff0c; 在void ModeManual::update()中可以看到g2.motors.set_th…

鸿蒙NEXT开发案例:随机数生成

【引言】 本项目是一个简单的随机数生成器应用&#xff0c;用户可以通过设置随机数的范围和个数&#xff0c;并选择是否允许生成重复的随机数&#xff0c;来生成所需的随机数列表。生成的结果可以通过点击“复制”按钮复制到剪贴板。 【环境准备】 • 操作系统&#xff1a;W…

c++学习:std的vector和tuple,定义包含不同类型数据数组

目录 std::vector std::tuple 例子 代码 分析 std::vector 它是一个动态数组&#xff0c;可以容纳多个元素&#xff0c;每个元素是一个 std::tuple std::tuple 它是一个固定大小的容器&#xff0c;可以存储不同类型的数据 例子 有时候想定义一个下面这样子类型的变量…

MACOS开发、使用常见问题汇总

MACOS常见问题 本文记录使用macos遇到的常见问题&#xff0c;后面会持续更新&#xff0c;觉得有用的可以收藏一下。 打不开xxx.app&#xff0c;因为它来自身份不明的开发者解决方法(开启任何来源) 打开终端&#xff08;Terminal&#xff09;程序 拷贝sudo spctl --master-di…

Matlab 深度学习工具箱 案例学习与测试————求二阶微分方程

clc clear% 定义输入变量 x linspace(0,2,10000);% 定义网络的层参数 inputSize 1; layers [featureInputLayer(inputSize,Normalization"none")fullyConnectedLayer(10)sigmoidLayerfullyConnectedLayer(1)sigmoidLayer]; % 创建网络 net dlnetwork(layers);% 训…