Professional Documents
Culture Documents
h>
#include <limits.h>
#include <stdbool.h>
int queue[100];
int front=0,back=0;
int vis[20];
int cost[10][10];
int V=10;
//<-----------------Input Vertices------------------>
void vertices(){
int v;
scanf("%d",&v);
V=v;
//<-----------BFS(breadth-fir10st search)code----------->
queue[back]=var;
back++;
void pop()
queue[front]=0;
front++;
int visited[20]={0};
push(s+1);
visited[s+1]=1;
while(front!=back)
int current=queue[front];
printf("%d ",current);
pop();
int i;
for(i=0;i<V;i++)
if((graph[current-1][i]!=0)&&(visited[i+1]==0))
push(i+1);
int j;
printf("%d ",i);
vis[i]=1;
for(j=0;j<V;j++)
if(!vis[j]&&graph[i][j]>=1)
DFS(j,graph);
{
int visited[10]={0},i,j,no_e=1,min,a,b,min_cost=0;
while(no_e<V)
min=1000;
for(i=0;i<V;i++)
for(j=0;j<V;j++)
if(cost[i][j]<min)
if(visited[i]!=0)
min=cost[i][j];
a=i;
b=j;
printf("\n%d to %d cost=%d",a,b,min);
min_cost=min_cost+min;
no_e++;
visited[b]=1;
int min=INT_MAX,min_ind,v;
for(v=0;v<V;v++)
if(sptSet[v]==false&&dist[v]<=min)
min=dist[v],min_ind=v;
return min_ind;
int i;
for(i=0;i<V;i++)
int dist[V],i;
bool sptSet[V];
for(i=0;i<V;i++)
dist[i]=INT_MAX,sptSet[i]=false;
dist[src]=0;
int count,v;
for(count=0;count<V-1;count++){
int u=minDistance(dist,sptSet);
sptSet[u]=true;
for(v=0;v<V;v++)
if(!sptSet[v]&&graph[u][v]&&dist[u]!=INT_MAX&&dist[u]+graph[u]
[v]<dist[v])
dist[v]=dist[u]+graph[u][v];
printSolution(dist);
void main()
vertices();
int graph[V][V];
int ch,s,i,j,sa,n1,w;
for(i=0;i<V;i++)
for(j=0;j<V;j++)
scanf("%d",&w);
graph[i][j]=w;
cost[i][j]=w;
if(cost[i][j]==0)
cost[i][j]=1000;
while(1){
scanf("%d",&ch);
switch(ch){
case 1:
bfs(s,graph);
break;
case 2:
for(i=0;i<V;i++)
vis[i]=0;
scanf("%d",&s);
DFS(s,graph);
break;
case 3:
minimumcost(cost);
break;
case 4:
scanf("%d",&n1);
dijkstra(n1,graph);
break;
case 5:
printf("Thanks!");
return;
default:
printf("Invalid choice!\n");