c code to python code converter online
#include<iostream>
// Defining MAX size to 10
#define MAX 10
using namespace std;
typedef struct Edge
{
int source;
int destination;
int weight;
}Edge;
void bellman_ford_algo(int nodevertex,Edge edge[],int source_graph,int nodeedge)
{
int u,v,weight,i,j=0;
int distance[MAX];
for(i=0;i<nodevertex;i++)
{
distance[i]=999;
}
// distance of source vertex
distance[source_graph]=0;
// free all the edges nodevertex - 1 times
for(i=0;i<nodevertex-1;i++)
{
for(j=0;j<nodeedge;j++)
{
u=edge[j].source;
v=edge[j].destination;
weight=edge[j].weight;
if(distance[u]!=999 && distance[u]+weight < distance[v])
{
distance[v]=distance[u]+weight;
}
}
}
// checking for negative cycle
for(j=0;j<nodeedge;j++)
{
u=edge[j].source;
v=edge[j].destination;
weight=edge[j].weight;
if(distance[u]+weight < distance[v])
{
cout<<"\n\nNegative Cycle present..!!\n";
return;
}
}
cout<<"\nVertex"<<" Distance from source";
for(i=1;i<=nodevertex;i++)
{
cout<<"\n"<<i<<"\t"<<distance[i];
}
}
int main()
{
int nodevertex,nodeedge,source_graph;
Edge edge[MAX];
cout<<"Enter the number of vertices you want : ";
cin>>nodevertex;
printf("Enter the source vertex of the graph: ");
cin>>source_graph;
cout<<"\nEnter no. of edges you want : ";
cin>>nodeedge;
for(int i=0;i<nodeedge;i++)
{
cout<<"\nEdge Number "<<i+1<<"=";
cout<<"\nEnter source vertex here :";
cin>>edge[i].source;
cout<<"Enter destination vertex here:";
cin>>edge[i].destination;
cout<<"Enter weight here :";
cin>>edge[i].weight;
}
bellman_ford_algo(nodevertex,edge,source_graph,nodeedge);
return 0;
}