Bellman有向图

Bellman有向图


#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<stack>
#include<deque>
#include<iostream>
using namespace std;
const int INF=0x3f3f3f3f;
const int N=100;
struct edge{
    int head;
    int tail;
    int cost;
}edge[N];
int graph[N][N];
int check[N];
int dis[N];
int n,m;
void Bellman(int m)
{
    int i,p,j;
    int check;
    for(i=0;i<n;i++)
        dis[i]=(i==0?0:INF);
    for(i=1;i<=n-1;i++)
    {
        check=0;
        for(j=1;j<=m;j++)
            if(dis[edge[j].tail]>dis[edge[j].head]+edge[j].cost)
            {
                dis[edge[j].tail]=dis[edge[j].head]+edge[j].cost;
                check=1;
            }
        if(check==0)
            break;
    }
    /*此处应添加判断负权环的代码*/
    /*此处应添加判断负权环的代码*/
    /*此处应添加判断负权环的代码*/
    /*此处应添加判断负权环的代码*/
}

int main()
{
    int i,p,j;
    int a,b,c;
    scanf("%d",&n);
    i=0;
    while(1)
    {
        i++;
        scanf("%d%d%d",&edge[i].head,&edge[i].tail,&edge[i].cost);
        if(edge[i].head==-1&&edge[i].tail==-1&&edge[i].cost==-1)
            break;
    }
    i--;
    Bellman(i);
    for(i=1;i<n;i++)
        printf("%d\n",dis[i]);

    return 0;
}


编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。 内容简介 · · · · · · 《编译原理》全面、深入地探讨了编译器设计方面的重要主题,包括词法分析、语法分析、语法制导定义和语法制导翻译、运行时刻环境、目标代码生成、代码优化技术、并行性检测以及过程间分析技术,并在相关章节中给出大量的实例。与上一版相比,《编译原理》进行了全面修订,涵盖了编译器开发方面最新进展。每章中都提供了大量的实例及参考文献。 作者简介 · · · · · · Alfred V. Aho是哥伦比亚大学的Lawrence Gussman计算机科学教授。Aho教授多次获奖,其中包括哥伦比亚校友会颁发的2003年度Great Teacher奖和电子与电器工程师协会的Jonh von Neumann奖章。他是美国国家工程院院士,以及ACM和IEEE的会员。 Monica S. Lam是斯坦福大学的计算机科学教授。她曾经是Tensilica的首席科学家,并且是moka5的创建者和首席执行官。她领导了SUIF项目。该项目开发了最流行的研究性编译器之一,并首创了很多在工业界得到应用的编译技术。 Ravi Sethi发起了Avaya公司的研究组织,并且是Avaya实验室的主管。之前他曾经是Bell实验室的高级副总裁,并且是Lucent科技的通信软件的首席技术官。他曾经在Pennsylvania州立大学和Arizona大学拥有教职,并在Priceton大学和Rutgers大学任教。他是ACM的会员。 Jeffery D. Ullman是Gradiance公司的首席执行官和Standford大学的Stanford W. Ascherman计算机科学(名誉退休)教授。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础软件的教育技术。他是美国国家工程院的院士,ACM的会员,并且是Karlstrom奖和Knuth奖的获得者。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值