DIJKSTRA ALGORITHM
visited[startnode]=1;
#include<stdio.h>
count=1;
#define INFINITY 9999
while(count<n-1)
{
#define MAX 10 mindistance=INFINITY;
for(i=0;i<n;i++)
void dijkstra(int G[MAX][MAX],int n,int startnode); if(distance[i]<mindistance&&!visited[i])
{
int main() mindistance=distance[i];
nextnode=i;
{ }
visited[nextnode]=1;
int G[MAX][MAX],i,j,n,u; for(i=0;i<n;i++)
if(!visited[i])
printf("enter no of vertices:");
if(mindistance+cost[nextnode][i]<distance[i])
scanf("%d",&n); {
distance[i]=mindistance+cost[nextnode][i];
printf("\nenter the adjacency matrix:\n"); pred[i]=nextnode;
}
for(i=0;i<n;i++) count++;
}
for(j=0;j<n;j++) for(i=0;i<n;i++)
if(i!=startnode)
scanf("%d",&G[i][j]); {
printf("\ndistance of node%d=%d",i,distance[i]);
printf("\nenter the starting node:");
printf("\npath=%d",i);
scanf("%d",&u);
j=i;
do
dijkstra(G,n,u); {
j=pred[j];
return 0; printf("<-%d",j);
}
} while(j!=startnode);
}}
void dijkstra(int G[MAX][MAX],int n,int startnode)
int cost[MAX][MAX],distance[MAX],pred[MAX];
int visited[MAX],count,mindistance,nextnode,i,j;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(G[i][j]==0)
cost[i][j]=INFINITY;
else
cost[i][j]=G[i][j];
for(i=0;i<n;i++)
distance[i]=cost[startnode][i];
pred[i]=startnode;
visited[i]=0;
distance[startnode]=0;
visited[startnode]=1;
count=1;
while(count<n-1)
mindistance=INFINITY;
for(i=0;i<n;i++)
if(distance[i]<mindistance&&!visited[i])
mindistance=distance[i];
nextnode=i;
visited[nextnode]=1;
for(i=0;i<n;i++)
if(!visited[i])
if(mindistance+cost[nextnode][i]<distance[i])
distance[i]=mindistance+cost[nextnode][i];
pred[i]=nextnode;
count++;
for(i=0;i<n;i++)
if(i!=startnode)
printf("\ndistance of node%d=%d",i,distance[i]);
printf("\npath=%d",i);
j=i;
do
j=pred[j];
printf("<-%d",j);
while(j!=startnode);
}
22 distance vector
.
#include<stdio.h> while(count!=0);
for(i=0;i<n;i++)
struct node {
printf("\n\nstate value for router %d is \n",i+1);
{ for(j=0;j<n;j++)
{
unsigned dist[20];
printf("\t\nnode %d vai %d distance%d",j+1,rt[i] .from[j]+1,rt[i] .dist[j]);
unsigned from[20];
}
}
} printf("\n\n");
}
rt[10];
int main()
int dmat[20][20];
int n,i,j,k,count=0;
scanf("%d",&n);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&dmat[i][j]);
dmat[i][i]=0;
rt[i] .dist[j]=dmat[i][j];
rt[i] .from[j]=j;
do
count=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
if(rt[i] .dist[j]>dmat[i][k]+rt[k].dist[j])
rt[i] .dist[j]=rt[i].dist[k]+rt[k].dist[j];
rt[i] .from[j]=k;
count++;
}
while(count!=0);
for(i=0;i<n;i++)
for(j=0;j<n;j++)
printf("\n\n");
#include<stdio.h>
#include<math.h>
#include<stdlib.h>
int main()
char c[50],d[50],t[50];
int i,m,j;
scanf("%d",&m);
for(i=0;i<m+1;i++)
scanf("%c",&c[i]);
for(i=0;i<m+1;i++)
printf("%c",c[i]);
d[0]='d';
d[1]='l';
d[2]='e';
d[3]='s';
d[4]='t';
d[5]='x';
for(i=0,j=6;i<m+1;i++,j++)
if((c[i]=='d'&&c[i+1]=='1'&&c[i+2]=='e'))
d[j]='d';
j++;
d[j]='l';
j++;
d[j]='e';
j++;
m=m+3;
d[j]=c[i];
m=m+6;
m++;
d[m]='d';
m++;
d[m]='l';
m++;
d[m]='e';
m++;
d[m]='e';
m++;
d[m]='t';
m++;
d[m]='x';
m++;
for(i=0;i<m;i++)
printf("%c",d[i]);
for(i=6,j=0;i<m-6;i++,j++)
{
if(d[i]=='d'&&d[i+1]=='l'&&d[i+2]=='e'&&d[i+3]=='d'&&d[i+4]=='l'&&d[i+5]=='e')
i=i+3;
t[j]=d[i];
printf("\n\nreceived data:");
for(i=0;i<j;i++)
printf("%c",t[i]);
#include<stdio.h>
int main()
int a[15];
int i,j,k,n,c=0,pos=0;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++)
if(a[i]==1)
c++;
if(c==5)
pos=i+1;
c=0;
for(j=n;j>=pos;j--)
k=j+1;
a[k]=a[j];
a[pos]=0;
n=n+1;
else
c=0;
for(i=0;i<n;i++)
printf("%d",a[i]);