58同城网站模板dw软件制作网页图片教程

张小明 2026/3/13 7:36:30
58同城网站模板,dw软件制作网页图片教程,企业软件下载,百度关键词价格排行榜图 一、图的基础概念与术语概念#xff1a;图是一种非线性数据结构#xff0c;由顶点和边组成#xff0c;相较于线性关系#xff08;链表#xff09;和分治关系#xff08;树#xff09;#xff0c;网络关系#xff08;图#xff09;的自由度更高#xff0c;因而更为…图一、图的基础概念与术语概念图是一种非线性数据结构由顶点和边组成相较于线性关系链表和分治关系树网络关系图的自由度更高因而更为复杂。常见类型是否有方向无向图与有向图在无向图中边表示两顶点之间的“双向”连接关系在有向图中边具有方向性即A→B和B→A两个方向的边是相互独立的所有顶点是否连通连通图和非连通图对于连通图从某个顶点出发可以到达其余任意顶点。对于非连通图从某个顶点出发至少有一个顶点无法到达。我们还可以为边添加“权重”变量从而得到有权图术语邻接当两顶点之间存在边相连时称这两顶点“邻接”。路径从顶点 A 到顶点 B 经过的边构成的序列被称为从 A 到 B 的“路径”。度一个顶点拥有的边数。对于有向图入度表示有多少条边指向该顶点出度表示有多少条边从该顶点指出。二、图的表示邻接矩阵设图的顶点数量为 邻接矩阵使用一个 大小的矩阵来表示图每一行列代表一个顶点矩阵元素代表边用0或1表示两个顶点之间是否存在边。邻接表邻接表adjacency list使用n个链表来表示图链表节点表示顶点。第i个链表对应顶点i其中存储了该顶点的所有邻接顶点与该顶点相连的顶点。三、图的基础操作基于邻接矩阵的实现/* 基于邻接矩阵实现的无向图类 */ class GraphAdjMat { vectorint vertices; vectorvectorint adjMat; public: /* 构造方法 */ GraphAdjMat(const vectorint vertices, const vectorvectorint edges) { // 添加顶点 for (int val : vertices) { addVertex(val); } // 添加边 for (const vectorint edge : edges) { addEdge(edge[0], edge[1]); } } /* 获取顶点数量 */ int size() const { return vertices.size(); } /* 添加顶点 */ void addVertex(int val) { int n size(); vertices.push_back(val); adjMat.emplace_back(vectorint(n, 0)); for (vectorint row : adjMat) { row.push_back(0); } } /* 删除顶点 */ void removeVertex(int index) { if (index size()) { throw out_of_range(顶点不存在); } vertices.erase(vertices.begin() index); adjMat.erase(adjMat.begin() index); for (vectorint row : adjMat) { row.erase(row.begin() index); } } /* 添加边 */ // 参数 i, j 对应 vertices 元素索引 void addEdge(int i, int j) { if (i 0 || j 0 || i size() || j size() || i j) { throw out_of_range(顶点不存在); } adjMat[i][j] 1; adjMat[j][i] 1; } /* 删除边 */ void removeEdge(int i, int j) { if (i 0 || j 0 || i size() || j size() || i j) { throw out_of_range(顶点不存在); } adjMat[i][j] 0; adjMat[j][i] 0; } /* 打印邻接矩阵 */ void print() { cout 顶点列表 ; printVector(vertices); cout 邻接矩阵 endl; printVectorMatrix(adjMat); } };基于邻接表的实现/* 基于邻接表实现的无向图类 */ class GraphAdjList { public: unordered_mapVertex *, vectorVertex * adjList; /* 在 vector 中删除指定节点 */ void remove(vectorVertex * vec, Vertex *vet) { for (int i 0; i vec.size(); i) { if (vec[i] vet) { vec.erase(vec.begin() i); break; } } } /* 构造方法 */ GraphAdjList(const vectorvectorVertex * edges) { for (const vectorVertex * edge : edges) { addVertex(edge[0]); addVertex(edge[1]); addEdge(edge[0], edge[1]); } } /* 获取顶点数量 */ int size() { return adjList.size(); } /* 添加边 */ void addEdge(Vertex *vet1, Vertex *vet2) { if (!adjList.count(vet1) || !adjList.count(vet2) || vet1 vet2) throw invalid_argument(不存在顶点); adjList[vet1].push_back(vet2); adjList[vet2].push_back(vet1); } /* 删除边 */ void removeEdge(Vertex *vet1, Vertex *vet2) { if (!adjList.count(vet1) || !adjList.count(vet2) || vet1 vet2) throw invalid_argument(不存在顶点); remove(adjList[vet1], vet2); remove(adjList[vet2], vet1); } /* 添加顶点 */ void addVertex(Vertex *vet) { if (adjList.count(vet)) return; adjList[vet] vectorVertex *(); } /* 删除顶点 */ void removeVertex(Vertex *vet) { if (!adjList.count(vet)) throw invalid_argument(不存在顶点); adjList.erase(vet); for (auto adj : adjList) { remove(adj.second, vet); } } /* 打印邻接表 */ void print() { cout 邻接表 endl; for (auto adj : adjList) { const auto key adj.first; const auto vec adj.second; cout key-val : ; printVector(vetsToVals(vec)); } } };四、图的遍历广度优先搜索广度优先遍历是一种由近及远的遍历方式从某个节点出发始终优先访问距离最近的顶点并一层层向外扩张代码实现vectorVertex * graphBFS(GraphAdjList graph, Vertex *startVet) { vectorVertex * res; unordered_setVertex * visited {startVet}; queueVertex * que; que.push(startVet); while (!que.empty()) { Vertex *vet que.front(); que.pop(); res.push_back(vet); for (auto adjVet : graph.adjList[vet]) { if (visited.count(adjVet)) continue; que.push(adjVet); visited.emplace(adjVet); } } return res; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

郑州医疗网站建设深圳市小程序科技有限公司

棕榈酰六肽-19通过放松肌肉和防止乙酰胆碱的释放来实现抗衰老效果,从而使皮肤看起来更年轻。棕榈酰六肽-19是BONT-L-Peptide中的有效成分,BONT-L-Peptide来自西班牙公司Infinitec。棕榈酰六肽-19能有效阻断从神经到面部肌肉的信号,防止收缩和…

张小明 2026/3/5 6:33:07 网站建设

网站怎么加代码企业网站备案快吗

区块链技术与软件测试的融合机遇 随着数字化时代的深入,软件测试作为保障系统质量的关键环节,正面临数据安全、测试可追溯性和效率提升的挑战。区块链技术,以其分布式账本和智能合约特性,为测试领域注入了新的活力。 区块链在软…

张小明 2026/3/5 6:33:07 网站建设

网站栏目建设征求意见网站上传后如何设置首页

SVPWM调制simulink离散模型带有死区补偿,效果较好。 七段式对称发波,采用PWM1模式调制PWM波。 三相电压电流均为正弦波,手动搭建,采样频率为20k。 附赠详细调制算法推导文档。最近在做一个关于SVPWM(空间矢量脉宽调制&…

张小明 2026/3/5 6:33:09 网站建设

福州高端网站定制设计专业所需网站

LobeChat能否用于创作小说?叙事结构生成能力评估 在数字创作的浪潮中,越来越多作家开始尝试借助人工智能完成从灵感到成稿的全过程。尤其是当一个工具既能保持专业级的文本质量,又能提供直观、灵活的操作体验时,它便有可能重塑整个…

张小明 2026/3/5 6:33:10 网站建设

小说网站制作开源做网站需要做什么

三种改进措施改进蜣螂优化(DBO)算法1,Chebyshev映射总群初始化2,滚球蜣螂位置更新中加入黄金正弦策略3,小偷蜣螂位置更新中加入权重系数 每个策略有文献参考(),共有23个测试函数,可以结合svr,el…

张小明 2026/3/5 6:33:10 网站建设