当前位置: 首页 > news >正文

青海公路建设信用信息服务网站深圳全网营销

青海公路建设信用信息服务网站,深圳全网营销,ui设计网课一般多少钱,小俊哥网站建设文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 有n个顶点的无向图#xff0c;使用邻接矩阵作为存储结构。为减少存储空间#xff0c;使用数组按照行主映射方式仅保存下三角矩阵。请给出映射公式#xff0c;并编写算法计算给定顶点的度。叙述算法思想并用… 文章目录 1.原题2.算法思想3.关键代码4.完整代码5.运行结果 1.原题 有n个顶点的无向图使用邻接矩阵作为存储结构。为减少存储空间使用数组按照行主映射方式仅保存下三角矩阵。请给出映射公式并编写算法计算给定顶点的度。叙述算法思想并用C实现说明算法的复杂性 2.算法思想 对于左下三角直接用映射公式对于右上三角通过对称的特点转为左下三角再用映射公式 3.关键代码 /*** brief 压缩邻接矩阵为一维数组左下三角** 将二维邻接矩阵压缩为一维数组仅存储左下三角部分的数据。** param adjMatrix 二维数组表示的邻接矩阵* param compressedMatrix 用于存储压缩后的矩阵的一维数组*/ void compressAdjacencyMatrix(int adjMatrix[NUM_VERTICES][NUM_VERTICES],int compressedMatrix[NUM_VERTICES * (NUM_VERTICES 1) / 2]) {int index 0;// 遍历二维矩阵的左下三角部分for (int i 0; i NUM_VERTICES; i) {for (int j 0; j i; j) {// 将左下三角的数据压缩到一维数组中compressedMatrix[index] adjMatrix[i][j];index;}} }/*** brief 计算给定顶点的度利用压缩矩阵** 使用压缩的邻接矩阵计算给定顶点的度数。** param vertex 给定顶点的索引* param compressedMatrix 压缩后的矩阵存储图的连接关系* return int 给定顶点的度数*/ int calculateDegree(int vertex, int compressedMatrix[NUM_VERTICES * (NUM_VERTICES 1) / 2]) {int degree 0;// 遍历矩阵中与给定顶点相关的元素for (int i 0; i NUM_VERTICES; i) {// i 大于 vertex 表示右上部分的矩阵if (i vertex) {// 根据公式 i * (i 1) / 2 vertex 计算出压缩后的矩阵位置degree compressedMatrix[i * (i 1) / 2 vertex];}// i 小于 vertex 表示左下部分的矩阵else if (i vertex) {// 根据公式 vertex * (vertex 1) / 2 i 计算出压缩后的矩阵位置degree compressedMatrix[vertex * (vertex 1) / 2 i];}}return degree; }4.完整代码 /*** file main.c* brief 实现了邻接矩阵及其操作。*/#include stdio.h#define NUM_VERTICES 6/*** brief 压缩邻接矩阵为一维数组左下三角** 将二维邻接矩阵压缩为一维数组仅存储左下三角部分的数据。** param adjMatrix 二维数组表示的邻接矩阵* param compressedMatrix 用于存储压缩后的矩阵的一维数组*/ void compressAdjacencyMatrix(int adjMatrix[NUM_VERTICES][NUM_VERTICES],int compressedMatrix[NUM_VERTICES * (NUM_VERTICES 1) / 2]) {int index 0;// 遍历二维矩阵的左下三角部分for (int i 0; i NUM_VERTICES; i) {for (int j 0; j i; j) {// 将左下三角的数据压缩到一维数组中compressedMatrix[index] adjMatrix[i][j];index;}} }/*** brief 计算给定顶点的度利用压缩矩阵** 使用压缩的邻接矩阵计算给定顶点的度数。** param vertex 给定顶点的索引* param compressedMatrix 压缩后的矩阵存储图的连接关系* return int 给定顶点的度数*/ int calculateDegree(int vertex, int compressedMatrix[NUM_VERTICES * (NUM_VERTICES 1) / 2]) {int degree 0;// 遍历矩阵中与给定顶点相关的元素for (int i 0; i NUM_VERTICES; i) {// i 大于 vertex 表示右上部分的矩阵if (i vertex) {// 根据公式 i * (i 1) / 2 vertex 计算出压缩后的矩阵位置degree compressedMatrix[i * (i 1) / 2 vertex];}// i 小于 vertex 表示左下部分的矩阵else if (i vertex) {// 根据公式 vertex * (vertex 1) / 2 i 计算出压缩后的矩阵位置degree compressedMatrix[vertex * (vertex 1) / 2 i];}}return degree; }/*** brief 打印邻接矩阵* param adjMatrix 邻接矩阵*/ void printAdjacencyMatrix(int adjMatrix[NUM_VERTICES][NUM_VERTICES]) {for (int i 0; i NUM_VERTICES; i) {for (int j 0; j NUM_VERTICES; j) {printf(%d , adjMatrix[i][j]);}printf(\n);} }/*** brief 主函数用于测试邻接矩阵及其操作*/ int main() {int adjMatrix[NUM_VERTICES][NUM_VERTICES] {{0, 1, 1, 0, 0, 0},{1, 0, 0, 1, 0, 0},{1, 0, 0, 1, 1, 0},{0, 1, 1, 0, 0, 1},{0, 0, 1, 0, 0, 1},{0, 0, 0, 1, 1, 0}};printf(Adjacency Matrix:\n);printAdjacencyMatrix(adjMatrix);int compressedMatrix[NUM_VERTICES * (NUM_VERTICES 1) / 2];compressAdjacencyMatrix(adjMatrix, compressedMatrix);printf(Compressed Matrix:\n);for (int i 0; i NUM_VERTICES * (NUM_VERTICES 1) / 2; i) {printf(%d , compressedMatrix[i]);}int vertex 3; // 输入要计算度的顶点int degree;degree calculateDegree(vertex - 1, compressedMatrix);printf(\nDegree of vertex %d is %d\n, vertex, degree);return 0; }5.运行结果
http://www.pierceye.com/news/648098/

相关文章:

  • 做网站的域名和空间是什么意思佛山建站专
  • 网站是哪个公司做wordpress 底部修改插件
  • 嘉兴网站推广优化印度vps
  • 网站seo诊断分析和优化方案青岛网站制作方案
  • 发布个人免费网站的一般流程图宣传广告
  • php学什么可以做网站po wordpress
  • 875网站建设怎么样网站设计高端网站设计
  • qq钓鱼网站怎么制作扬州网站建设哪个好薇
  • 域名和网站空间怎么做解析南阳seo网站推广费用
  • 烟台企业网站建设国内ui网站有哪些
  • 手机网站建设选 朗创营销电商运营的核心公式
  • seo网站排名软件飞机网页设计实训报告
  • 禹城做网站做网站的教科书
  • 基木鱼建站公众号怎么做网站
  • 无水印做海报的网站百度技术培训中心
  • 如何在阿里云上做网站现在最流行的网站开发工具
  • 济宁网站建设联系方式漳州本地网
  • 口腔网站建设wordpress顶部提示
  • 葫芦岛做网站公司如皋网站开发公司
  • 国外开源 企业网站服务好质量好的网站制作
  • sql网站的发布流程品牌建设是什么意思
  • 营口网站建设价格江苏住房和建设厅网站
  • 网站稳定性不好的原因打金新开传奇网站
  • 做网站怎么上传图片厦门建站网址费用
  • 网站设计方案和技巧做设计有必要买素材网站会员吗
  • 成都制作网站软件网站别人帮做的要注意什么东西
  • 徐州建筑网站建网站要自己买服务器吗
  • 网站订单系统模板专业的做网站公司
  • 怎么做加盟美容院网站黄骅港开发区
  • 品牌高端网站制作官网做网站用的小图标