⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 text1.txt

📁 一个简单的Bellman_and_Wallshall算法的实现。只是和大家交流一下
💻 TXT
字号:
#include<stdio.h>

#define max 10000;
#define NIL 00;

struct edge
{
	int start;
	int end;
	int weight;
};

main()
{
	int i;
	int num;
	int d[10];
	int p[10];
	struct edge gra[10];
	for(i=0;i<10;i++)
	{
		d[i]=max;
		p[i]=NIL;
	}
	d[0]=0;//该图的原点即为0点
	for(i=0;i<10;i++)
		gra[i].start=gra[i].end=gra[i].weight=0;
	printf("\n  请注意!本程序可以处理10条边的有向图\n");
	printf("\n  (程序默认所输入的第一个点为图的原点)\n");
	printf("\n  请输入图中结点的个数:");
	scanf("%d",&num);
	printf("\n  请按照:起始点,权值,终止点的顺序输入图的信息\n");
	for(i=0;i<10;i++)
		scanf("%d%d%d",&gra[i].start,&gra[i].weight,&gra[i].end);
	for(i=0;i<10;i++)
	{
		if(d[gra[i].end]>d[gra[i].start]+gra[i].weight)
		{
			d[gra[i].end]=d[gra[i].start]+gra[i].weight;
			p[gra[i].end]=gra[i].start;
		}
	}
	for(i=0;i<10;i++)
	{
		if(d[gra[i].end]>d[gra[i].start]+gra[i].weight)
		{
			printf("\n  图的数据不合适,第%d条边处出现了负环,请仔细检查!\n",i);
			exit(0);
		}
	}
	for(i=0;i<num;i++)
		printf("  第%d个结点到原点的最短路径的值是%d\n",i,d[i]); 
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -