有大佬有用数组模拟邻接表的dijkstra吗
  • 板块学术版
  • 楼主TARGETMINE
  • 当前回复14
  • 已保存回复14
  • 发布时间2023/10/7 21:36
  • 上次更新2023/11/2 14:59:25
查看原帖
有大佬有用数组模拟邻接表的dijkstra吗
935263
TARGETMINE楼主2023/10/7 21:36

有大佬有用数组模拟的dijkstra模板吗 是静态数组,不是动态的

自己想脑袋要炸了

用数组模拟邻接表的模板就是这个:

#include <iostream>
#include <cstring>

using namespace std;

const int N = 1005, M = 10005;

int h[N], e[M], nex[M], idx = 0;

void add(int a,int b)
{
	e[idx] = b;
	nex[idx] = h[a];
	h[a] = idx;
	idx++;
	
	
}


int main()
{
	int n, m;
	int a, b;
	memset(h, -1, sizeof(h)); // 初始化 
	
	cin >> n >> m; // 输入点数,边数 
	for (int i=1;i<=m;i++)
	{
		cin >> a >> b;
		add(a, b);
		add(b, a);
		
	}
	
	for (int i=1;i<=n;i++)
	{
		cout << i << "->";
		for (int j=h[i];j!=-1;j=nex[j])
		{
			
			cout << e[j] << "->";
		}
		cout << endl;
	}
	
	
	
	return 0;
}

谢谢啦

2023/10/7 21:36
加载中...