文章目录

  • 图的定义和术语
  • 连通图(强连通图)
  • 连通分量(强连通分量)
  • 有向图和无向图的工程案例

图的定义和术语


完全图:任意两个点都有一条边相连





连通图(强连通图)



连通分量(强连通分量)



有向图和无向图的工程案例

#include "pch.h"
#include <iostream>
using namespace std;//有向图 无向图 有向网 无向网
enum GraphKing { DG, DN, UDG, UDN };//定义图
typedef struct Node
{int *vex;      //顶点个数int vexnum;       //顶点数int edge;      //图的边数int **adjmatrix;//图的邻接矩阵GraphKing kind;   //图的类型
}Mygraph;//创建图
void CreateGraph(Mygraph &g,GraphKing king)
{cout << "请输入图的顶点个数:";cin >> g.vexnum;cout << "请输入图的边的条数:";cin >> g.edge;g.kind = king;//确认创建图的类型//开辟空间g.vex = new int[g.vexnum];g.adjmatrix = new int*[g.vexnum];cout << "输出顶点个数:" << g.vexnum << endl;//给邻接矩阵申请空间for (int i = 0; i < g.vexnum; i++){g.adjmatrix[i] = new int[g.vexnum];}//给邻接矩阵初始化for (int j = 0; j < g.vexnum; j++){for (int k = 0; k < g.vexnum; k++){if (g.kind==DG||g.kind==DN){g.adjmatrix[j][k] = 0;}else{g.adjmatrix[j][k] = INT_MAX;}}}//输入图的顶点cout << "请输入两个顶点的序号(1,2分别代表1号顶点和2号顶点):" << endl;;for (int i = 0; i < g.edge; i++){int a, b;cout << "请依次输入图(vi, vj)的vi和vj:";cin >> a >> b;//无向图if (g.kind==DN){g.adjmatrix[b - 1][a - 1] = 1;g.adjmatrix[a - 1][b - 1] = 1;}//有向图else if (g.kind==DG){g.adjmatrix[a - 1][b - 1] = 1;}//有向网else if (g.kind==UDG){int weight;cout << "请输入该边的权:";cin >> weight;g.adjmatrix[a - 1][b - 1] = weight;}else if (g.kind == UDN){int weight;cout << "请输入该边的权:";cin >> weight;g.adjmatrix[a - 1][b - 1] = weight;g.adjmatrix[a - 1][b - 1] = weight;}}
}//输出图
void PrintGraph(Mygraph g)
{for (int i = 0; i <g.vexnum; i++){for (int j = 0; j < g.vexnum; j++){//有/无向网if (g.adjmatrix[i][j]==INT_MAX){cout << "∞" << endl;}else{cout << g.adjmatrix[i][j] << " ";}}cout << endl;}
}//清除图
void ClearGraph(Mygraph g)
{delete g.vex;g.vex = NULL;for (int i = 0; i < g.vexnum; i++){delete g.adjmatrix[i];g.adjmatrix[i] = NULL;}delete g.adjmatrix;
}
int main()
{Mygraph g;cout << "有向图案例:" << endl;CreateGraph(g, DG);PrintGraph(g);ClearGraph(g);cout << endl;cout << "无向图案例:" << endl;CreateGraph(g, DN);PrintGraph(g);ClearGraph(g);cout << endl;return 0;
}

结果为:

数据结构——数据结构算法之《图》相关推荐

  1. python函数结构图_Python数据结构与算法之图结构(Graph)实例分析

    本文实例讲述了Python数据结构与算法之图结构(Graph).分享给大家供大家参考,具体如下: 图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作 ...

  2. python define graph_Python数据结构与算法之图结构(Graph)实例分析

    本文实例讲述了Python数据结构与算法之图结构(Graph).分享给大家供大家参考,具体如下: 图结构(Graph)--算法学中最强大的框架之一.树结构只是图的一种特殊情况. 如果我们可将自己的工作 ...

  3. python棋盘最短路径_Python数据结构与算法之图的最短路径(Dijkstra算法)完整实例...

    本文实例讲述了Python数据结构与算法之图的最短路径(Dijkstra算法).分享给大家供大家参考,具体如下: # coding:utf-8 # Dijkstra算法--通过边实现松弛 # 指定一个 ...

  4. 特征图注意力_从数据结构到算法:图网络方法初探

    作者 | 朱梓豪 来源 | 机器之心 原文 | 从数据结构到算法:图网络方法初探 如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地.其实早在很多年前,图神经网络就以图嵌入. ...

  5. 数据结构与算法之-----图(拓扑排序)

    [​​​​​​​ 写在前面的话:本专栏的主要内容:数据结构与算法. 1.对于​​​​​​​初识数据结构的小伙伴们,鉴于后面的数据结构的构建会使用到专栏前面的内容,包括具体数据结构的应用,所使用到的数据 ...

  6. 数据结构与算法之-----图(搜索算法)

    [ 写在前面的话:本专栏的主要内容:数据结构与算法. 1.对于​​​​​​​初识数据结构的小伙伴们,鉴于后面的数据结构的构建会使用到专栏前面的内容,包括具体数据结构的应用,所使用到的数据结构,也是自己 ...

  7. 数据结构与算法之图的应用

    数据结构与算法之图的应用 图的定义和基本概念 图的实现 数组〈邻接矩阵〉 邻接表 图的应用 最小生成树 Prim(普里姆)算法 Kruskal(克鲁斯卡尔)算法 最短路径 迪克斯特拉算法 拓扑排序 执 ...

  8. 数据结构与算法--符号图

    数据结构与算法--符号图 为了计算简单,传统的图中,都是使用整数来表示顶点,这样难免会有点抽象,不能直接反映各个顶点代表的信息.在实际生活中,使用图时一般会建立一个一一对应的关系表,如下 顶点 0 1 ...

  9. js数据结构和算法(8)-图

    8-图(第11章) 8.1 图的定义 图是一种非线性结构,由一系列顶点及其连接顶点的边组成.比如A和B.A和D是相邻的,而A和E不是相邻的.一个顶点相邻顶点的数量叫作度,比如A的度为3.D的度为4.路 ...

  10. 【数据结构与算法】图

    一:如何理解"图" 1,图和树一样都是非线性表数据结构,和树不同的是图是一种更加复杂的非线性表结构 2,树中的元素称之为节点,图中的元素则称之为顶点. 3,顶点可以与任意其他顶点建 ...

最新文章

  1. 借助tkinter设计人脸检测的界面(摄像头检测,视频检测,视频检测并保存)
  2. 一流大学计算机专业都用什么教材,高校IT教材严重落后_网易科技报道
  3. 努力学习 HTML5 (3)—— 改造传统的 HTML 页面
  4. @SpringBootApplication揭秘
  5. nodejs学习(一)--express+ejs生成项目
  6. centos7安装jdk只有几k的坑
  7. 性能测试工具JMeter的安装及环境配置--Windows和Linux
  8. 【Vue】Aliplayer 视音频播放的实践与思考
  9. 微信小程序:人生重开模拟器
  10. Windows2012开机启动项设置
  11. 在HBuilder上打开PHP文件
  12. 如何区分项目组合管理,项目集管理,和项目管理
  13. 汽车自动变速器的共性技术
  14. 题解 P2184 【贪婪大陆】
  15. 【小白转型项目经理】实战案例14,总价合同如何向甲方申请其他费用补偿?
  16. Windows 10与微软公有云Azure
  17. XGBoost原理介绍
  18. mysql分组之后再求和
  19. C# Windows 7任务栏开发之进度条(Progress Bar)
  20. 基于Java毕业设计校园面包超市系统源码+系统+mysql+lw文档+部署软件

热门文章

  1. 植物基因编辑最新政策解读(2021年7月)
  2. VSCode实现Cesium的自动提示功能
  3. 西安电子科技大学c语言答案,西安电子科技大学2021春 面向对象程序设计(C++)大作业答案...
  4. SSM框架基于web的房屋租售管理系统源码+论文第二稿+软件环境+包安装调试
  5. js动画和css3动画的差异性
  6. ssm+JSP计算机毕业设计工伤事故管理系统bzc3b【源码、程序、数据库、部署】
  7. 改善羽毛球比赛心理有“妙招”
  8. 在线制作简易业务流程图
  9. 阻容感基础05:电容器原理(2)-电容器参数
  10. 从权力的游戏谈用户画像