在C++中,我们表示图的方法一般都是用链接矩阵或者连接表,这两种表示方法比较常见,但是另外一种用结构体来表示图的方法其实更加简单,而且也很省内存,与连接表法有些类似,但coding起来比较简单。

int tot;                                    //记录当前边的数量
int head[100];                              //记录以n为起点的第一条边对应的边e的编号
int flag[100];                              //标记某个顶点是否被访问过struct arc{                                 //边的表示int end;                            //边的终止节点int next;                           //同起点的下一条边的编号arc(int x=0,int y=-1){              //结构体构造函数,默认是publicend=x;next=y;}
}e[100];                                    //边的数组void addE(int u,int v){                     //新建一条边,以u为起点,以v为终点e[tot]=arc(v,head[u]);              //head[u]为有记录的上一条以u为起点的边的编号head[u]=tot;                        //更新head[u],head[u]记录的是最近的一条以u为起点的边tot++;
}void visit(int s){printf("%d",s);flag[s]=1;
}void dfs(int s){                            //深度优先遍历visit(s);for(int i=head[s];i!=-1;i=e[i].next){if(!flag[e[i].end])dfs(e[i].end);}
}int main(){int u,v;memset(head,-1,sizeof(head));        //初始化以任意一个节点为起点的最近的边的编号为-1memset(flag,0,sizeof(flag));            while(scanf("%d %d",&u,&v)!=EOF){addE(u,v);                   //建边}dfs(0);return 0;
}

这个代码个邻接表很像,都是通过head[n]来找到一条以n为起点的边,然后根据边中的next来找其他边。但是还是有一点区别的,邻接表中,是按图中逆时针顺序将每一条边加入到节点对应的链表中,而上述表示法是顺时针添加。

理解时最好画一个简单的图来演示一遍更能深刻理解!

C++中图的简单表示法相关推荐

  1. 中图法检索计算机科学方面,信息检索 第一次上机答案lpar;南通大学rpar;

    ISSN(国际标准连续出版物编号,International Standard Serial Number )是根据国际标准3297制定的连续出版物国际标准编码,其目的是使世界上每一种不同题名.不同版 ...

  2. three.js创建简单的法向贴图

    学习交流欢迎加群:789723098,博主会将一些demo整理共享 在上一节,我们用了three.js创建了简单的凹凸贴图效果:点击查看凹凸贴图,凹凸贴图可以呈现出比普通贴图更多细节,也更具层次感,如 ...

  3. 计算机相关分类号,中图法分类号(计算机专业) TP

    中图法分类号(计算机专业) T 工业技术 TP 自动化技术.计算机技术 TP3 计算技术.计算机技术 TP3-0 计算机理论与方法 TP3-05 计算机与其他学科的关系 TP30 一般性问题 TP30 ...

  4. 硕士论文分类号(中图法分类号)

    论文分类号(中图法分类号查询)网址:http://www.ztflh.com/ 例如<基于SCA软件无线电研究和开发>的分类号是TN924.

  5. 中图法分类号(计算机专业)

    中图法分类号(计算机专业)    T 工业技术 TP 自动化技术.计算机技术 TP3 计算技术.计算机技术 TP3-0 计算机理论与方法 TP3-05 计算机与其他学科的关系 TP30 一般性问题 T ...

  6. 中图法分类号(计算机专业)和文献标识码

    中图法分类号(计算机专业)    T 工业技术 TP 自动化技术.计算机技术 TP3 计算技术.计算机技术 TP3-0 计算机理论与方法 TP3-05 计算机与其他学科的关系 TP30 一般性问题 T ...

  7. 计算机论文分类号 tp,中图法分类号(计算机专业) TP

    中图法分类号(计算机专业) T 工业技术 TP 自动化技术.计算机技术 TP3 计算技术.计算机技术 TP3-0 计算机理论与方法 TP3-05 计算机与其他学科的关系 TP30 一般性问题 TP30 ...

  8. 中图法分类号 计算机视觉方面,中图法分类号tp39中国图象图形学报.doc

    中图法分类号tp39中国图象图形学报 中图法分类号:TP391.4 文献标识码:A 文章编号: 论文引用格式: 利用背景加权和选择性子模型更新的视觉跟踪算法 黄安奇,侯志强,余旺盛,刘翔 空军工程大学 ...

  9. 中图法检索计算机科学方面,千兆位以太网中可以使用超5类UTP双绞线。【

    千兆位以太网中可以使用超5类UTP双绞线.[ 更多相关问题 气压传动系统与液压传动系统相比有哪些优缺点 ? 背越式跳高由 加 助跑组成. 如图所示,求该电路的等效内阻( ) 输入分辩是以每英寸分辨的象 ...

最新文章

  1. windows10 mysql 5.5.36 安装
  2. std::ios::sync_with_stdio(false);
  3. shell中的wait
  4. oauth2_带有Spring Security的OAuth 2.0快速指南
  5. research button control usage in WebIDE
  6. uni-app在小程序开发者工具:TypeError: Cannot read property ‘forceUpdate‘ of undefined
  7. Python 深入浅出 - HelloWorld
  8. AD2017破解步骤
  9. iOS扫码识别之后添加震动/播放声音提示、歌词解析并随音乐滚动显示(包含demo源码)
  10. 计算日期在当月是第几周-【自然周(每月第一个周一为该月第一周)做法以及1号为第一周做法】
  11. 鸿蒙系统1004无标题,win10 10041更新提示错误怎么处理
  12. 计算机网络 密钥分配
  13. python--if语句判断数字正负值
  14. 好像还挺好玩的GAN重制版4——Pytorch搭建SRGAN平台进行图片超分辨率提升
  15. 非线性规划之分式规划
  16. 目标检测之五:随机权值平均(Stochastic Weight Averaging,SWA)---木有看懂
  17. 【eclipse中配置java】
  18. 微服务项目之电商--17.商品规格数据结构SPU和SKU
  19. ElGamal算法实现
  20. ncnn 框架分析 openmp多核加速 缓存 仿存 cache 快速矩阵乘法 单指令多数据指令SIMD

热门文章

  1. [转]iOS开发使用半透明模糊效果方法整理
  2. GIT上fork的项目获取最新源代码
  3. netstat(win)
  4. android中如何通过代码检测是否有root权限?
  5. 读《纸本书变电子书是很小的事》有感
  6. 【编程好习惯】避免使用魔数
  7. Serverless 实战 —— ​​​​​​​与微服务一脉相承,Serverless适用何种场景?会带来哪些冲击?
  8. SpringBoot 计划任务
  9. 容器编排技术 -- Kubernetes kubectl get 命令详解
  10. Nginx负载均衡配置和健康检查