图的存储

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;
} 
相关推荐
LabVIEW开发12 分钟前
CTM-3 红外测温仪 + LabVIEW 温度怎么测?
算法·labview·测试·labview程序
纪念 22927 分钟前
C++算法(六)
开发语言·c++·算法
Dumbness1 小时前
UIA 读微信群消息没有 id,怎么判断哪条是新的:后缀对齐在翻历史和撤回时整屏重报
python·算法
taka1 小时前
从 24x 到 141x:我用纯 Python 零依赖项目,扒开了 GPU 加速的性能黑洞
算法
UIU1142 小时前
P16237 [蓝桥杯 2026 省 B] 应急布线
数据结构·c++·算法·蓝桥杯
旖旎夜光2 小时前
LeetCode 315: 算右侧小于当前元素的个数(归并排序) —— 题解
c++·学习·算法·leetcode·排序算法
像风一样自由20202 小时前
2.如何用FastAPI把一个Python算法封装成HTTP服务
python·算法·fastapi
D e re k ZH2 小时前
保序回归:从 PAVA 到可并堆的单调约束优化
c++·算法·数据挖掘·回归·kotlin
青少儿编程课堂2 小时前
蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级:字典树前缀树与单词检索统计
c++·python·算法·bfs·信息学竞赛
Nuanyt2 小时前
LeetCode Hot 100 链表专题2 3 题 (Java)
java·笔记·算法·leetcode·链表