图的存储

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;
} 
相关推荐
小糖学代码16 分钟前
LLM系列:2.pytorch入门:3.基本优化思想与最小二乘法
人工智能·python·算法·机器学习·ai·数据挖掘·最小二乘法
爱写代码的倒霉蛋19 分钟前
天梯赛备赛经验分享(基础版)
经验分享·算法
f3iiish32 分钟前
2078. 两栋颜色不同且距离最远的房子 力扣
算法·leetcode
王老师青少年编程1 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【排序贪心】:拼数
c++·算法·贪心·csp·信奥赛·排序贪心·拼数
炽烈小老头1 小时前
【 每天学习一点算法 2026/04/21】螺旋矩阵
学习·算法
未来转换1 小时前
基于A2A协议的生产应用实践指南(Java)
java·开发语言·算法·agent
谭欣辰2 小时前
AC自动机:多模式匹配的高效利器
数据结构·c++·算法
joker_sxj2 小时前
论文阅读-DeepSeek-mHC
论文阅读·算法
sheeta19982 小时前
LeetCode 每日一题笔记 日期:2026.04.21 题目:1722. 执行交换操作后的最小汉明距离
笔记·算法·leetcode
鲸渔2 小时前
【C++ 跳转语句】break、continue、goto 与 return
开发语言·c++·算法