邻接表存储图(c++题解)

题目描述

给出一个无向图,顶点数为n,边数为m。n<=1000,m<=10000

输入格式

第一行两个整数n,m,接下来有m行,每行两个整数u,v,表示点u到点v有一条边。

输出格式

第i行输出第点i的所有邻接点,邻接点按照度数由小到大输出,如果度数相等,则按照编号有小到大输出。

样例

样例输入

复制代码
复制5 6
1 2
1 3
1 4
2 3
2 4
2 5

样例输出

复制代码
复制3 4 2 
5 3 4 1 
1 2 
1 2 
2 

写作不易,点个赞呗!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
int n,m,u,v;
vector<int> a[1000005]; 
bool cmp(int x,int y){
	if(a[x].size()==a[y].size()){
		return x<y;
	}
	return a[x].size()<a[y].size();
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		cin>>u>>v;
		a[u].push_back(v);
		a[v].push_back(u);
	}
	for(int i=1;i<=n;i++){
		sort(a[i].begin(),a[i].end(),cmp);
		for(auto j:a[i])cout<<j<<" ";
		cout<<endl;
	}
}
相关推荐
专注于ai算法的踩坑小达人2 分钟前
C++变量全面总结
c++·qt
老鼠只爱大米8 分钟前
LeetCode经典算法面试题 #230:二叉搜索树中第K小的元素(递归法、迭代法、Morris等多种实现方案详细解析)
算法·leetcode·二叉搜索树·二叉树遍历·第k小的元素·morris遍历
星期五不见面10 分钟前
嵌入式学习!(一)C++学习-leetcode(21)-26/1/29
学习·算法·leetcode
阿猿收手吧!11 分钟前
【C++】atmoic原子操作与并发安全全解析
开发语言·c++·安全
2501_9413220316 分钟前
通信设备零部件识别与检测基于改进YOLOv8-HAFB-2算法实现
算法·yolo
凯子坚持 c20 分钟前
C++基于微服务脚手架的视频点播系统---客户端(1)
开发语言·c++·微服务
modelmd23 分钟前
【递归算法】汉诺塔
python·算法
CSDN_RTKLIB25 分钟前
SharedPtr测试步骤说明
c++
呱呱巨基27 分钟前
Linux 第一个系统程序 进度条
linux·c++·笔记·学习
2401_8384725129 分钟前
C++中的装饰器模式实战
开发语言·c++·算法