博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0开始 图论学习 前向星表示法
阅读量:5037 次
发布时间:2019-06-12

本文共 1041 字,大约阅读时间需要 3 分钟。

前向星的建立和遍历

writer:pprp

注意:从0开始不是从1开始

链式前向星算法可以对应点特别多的情况,可以存储重复边,但不能直接判断图中任意两点是有边。

代码如下:

//writer:pprp//前向星表示//注意:点的编号也是从0开始的,不能从1开始#include 
#include
#include
using namespace std;const int maxn = 1000;struct node{ int op,ed,w;};node e[maxn];int head[maxn];bool cmp(node n1, node n2){ if(n1.op == n2.op && n1.ed == n2.ed) return n1.w < n2.w; if(n1.op == n2.op) return n1.ed < n2.ed; return n1.op < n2.op;}int main(){ int vv, ee; cin >> vv >> ee; for(int i = 0; i < ee; i++) cin >> e[i].op >> e[i].ed >> e[i].w; sort(e,e+ee,cmp); memset(head,-1,sizeof(head)); head[e[0].op] = 0; for(int i = 0 ; i < ee ; i ++) { if(e[i].op != e[i-1].op) head[e[i].op] = i; } for(int i = 0; i < vv; i++) { for(int k = head[i]; e[k].op == i && k < ee; k++) { cout <<"op:" << e[k].op << " ed:" << e[k].ed << " w:" << e[k].w << endl; } } return 0;}

转载于:https://www.cnblogs.com/pprp/p/7786687.html

你可能感兴趣的文章
phpcms 添加自定义表单 留言
查看>>
mysql 优化
查看>>
读书笔记 ~ Nmap渗透测试指南
查看>>
WCF 配置文件
查看>>
动态调用WCF服务
查看>>
oracle导出/导入 expdp/impdp
查看>>
类指针
查看>>
css修改滚动条样式
查看>>
2018.11.15 Nginx服务器的使用
查看>>
Kinect人机交互开发实践
查看>>
百度编辑器UEditor ASP.NET示例Demo 分类: ASP.NET...
查看>>
JAVA 技术类分享(二)
查看>>
android客户端向服务器发送请求中文乱码的问
查看>>
UOJ#220. 【NOI2016】网格 Tarjan
查看>>
Symfony翻译教程已开课
查看>>
Python模块之pickle(列表,字典等复杂数据类型与二进制文件的转化)
查看>>
通过数据库表反向生成pojo类
查看>>
css_去掉默认样式
查看>>
TensorFlow2.0矩阵与向量的加减乘
查看>>
NOIP 2010题解
查看>>