C++图论

图的概念

无相完全图:n*(n-1)/2
有向完全图:n*(n-1)

无向图:度就是它的边的连接数
有向图:
入度:多少个边指向这个点
出度:多少个边从这个点出发

路径

路径:一个顶点到另一顶点连续构成的序列

环路:路径起点与终点是同一点

图的储存

1.邻接矩阵储存
2.邻接表储存:
#include<bits/stdc++.h>
using namespace std;
const int N=110,M=500010;
struct Edge{
	int to,dis,last;
}e[M];
int n,m;
int head[N],edge_num;
void add_edge(int from,int to,int dis){
	edge_num++;
	e[edge_num].to=to;
	e[edge_num].dis=dis;
	e[edge_num].last=head[from];
	head[from]=edge_num;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v,w;
		cin>>u>>v>>w;
		add_edge(u,v,w);
	}
	for(int j=1;j<=n;j++){
		for(int i=1;i!=0;i=e[i].last){
			printf("起点是:%d,终点是:%d,权值是:%d",j,e[i].to,e[i].dis);
		}
	}
	return 0;
}

仅为个人笔记,不对之处请提醒,谢谢;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值