图的存储

n是节点

完全图:每两个顶点之间都有一条边连接 边数:n(n-1)/2

完全有向图:每两个顶点之间都有两条边连接 边数:n(n-1)

树的边数:(n-1)

连通图:从某个顶点出发,可以到达其余任意顶点

非连通图:从某个顶点出发,至少有一个顶点无法到达

图的邻接表和邻接矩阵的存储模版:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
#define MAXN 1000+10
bool g1[MAXN][MAXN];//邻接矩阵 
int deg[MAXN];//度数 
vector<int> g2[MAXN];//邻接表 
int main(){
	int n,m;//n:顶点 m:度数 
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,v;
		cin>>u>>v;//一条边的两个顶点 
		deg[u]++;
		deg[v]++;//度数+1 
		g1[u][v]=g1[v][u]=1;//无向图双向建边 
		//邻接表(邻接表插入边) 
		g2[u].push_back(v);
		g2[v].push_back(u);
		//输出邻接矩阵 
		for(int i=1;i<=n;i++){
			for(int j=1;j<=n;j++){
				cout<<g1[i][j]<<" ";
			}
		}cout<<endl;
	}
	//邻接表排序 
	for(int i=1;i<=n;i++){
		sort(g2[i].begin(),g2[i].end());
	}
	//输出邻接表 
	for(int i=1;i<=n;i++){
		cout<<deg[i]<<' ';
		for(int j=0;j<g2[i].size();j++){
			cout<<g2[i][j]<<' ';
		}cout<<endl;
	} 
	return 0;
} 
相关推荐
微小冷1 小时前
Python图论库NetworkX初步
开发语言·python·图论·graph·networkx·digraph
月华路2 小时前
G1 新生代对象晋升老年代:实现机制与 GC 日志
java·jvm·算法
万法若空2 小时前
排列组合恒等式
c++·算法
Nil2082 小时前
leetcode 105从前序和中序遍历序列构造二叉树
算法·leetcode·职场和发展
一直C2 小时前
【数据结构】哈希表+算法复杂度与经典排序查找(C语言)
java·linux·开发语言·数据结构·算法·ubuntu·散列表
淡海水2 小时前
04-02-哈希-Dictionary-TKey-TValue-上-核心数据结构
数据结构·算法·c#·哈希算法·编译·字典·dictionary
戴西软件2 小时前
国内有哪些数据轻量化格式转换软件?
数据库·算法·安全·信息可视化·自动化·rpa
老洋葱Mr_Onion3 小时前
【C++】CSP-J初赛模拟卷七错题整理(作者自用)
c++·算法·深度优先
Nil2083 小时前
leetcode 114二叉树展开为链表
leetcode·链表·深度优先
土星云SaturnCloud3 小时前
Real-ESRGAN超分辨率算法原理与边缘侧部署实践
服务器·算法·ai·边缘计算·real-esrgan