write a program for shortest path

DATE: ………………………….
/*WRITE A PROGRAM FOR BIT STUFFING*/
PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[20],fs[50]=" ",t[6],r[5];
int i,j,p=0,q=0;
clrscr();
printf("enter bit string");
scanf("%s",a);
strcat(fs,"0111110");
if(strlen(a)<5)
{
strcat(fs,a);
}
else
{
for(i=0;i<strlen(a)-4;i++)
{
for(j=0;j<i+5;j++)
1
DATE: ………………………….
{
t[p++]=a[j];
}
t[p]='\0';
if(strcmp(t,"11111")==0)
{
strcat(fs,"111110");
i=j-1;
}
else
{
r[0]=a[i];
r[1]='\0';
strcat(fs,r);
}
p=0;
}
for(q=i;q<strlen(a);q++)
{
t[p++]=a[q];
}
t[p]='/0';
strcat(fs,t);
2
DATE: ………………………….
}
strcat(fs,"01111110");
printf("after stuffing:%s",fs);
getch();
}
OUTPUT:
/*WRITE A PROGRAM FOR CHARCTER STUFFING*/
3
DATE: ………………………….
PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char a[30],fs[50]=" ",d[3],s[3],t[3],sd,ed;
char x[3],y[3];
int i,j;
clrscr();
printf("enter the character to be stuffed:");
scanf("%s",&a);
printf("\n enter a character that represents a starting delimiter:");
scanf("%s",&sd);
printf("\n enter a character that represents ending delimiter:");
scanf("%s",&ed);
x[0]=s[0]=s[1]=sd;
x[1]=s[2]='\0';
y[0]=d[0]=d[1]=ed;
d[2]=y[1]='\0';
strcat(fs,x);
for(i=0;i<strlen(a);i++)
4
DATE: ………………………….
{
t[0]=a[i];
t[i]='\0';
if(t[0]==sd)
strcat(fs,s);
else
if(t[0]==ed)
strcat(fs,d);
else
strcat(fs,t);
}
strcat(fs,y);
printf("\n after stuffing:%s",fs);
getch();
}
OUTPUT:
5
DATE: ………………………….
/*WRITE A PROGRAM FOR CRC*/
6
DATE: ………………………….
PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char frame[30],a[20],res[30],gen[30],mess[30],ch;
int frmsz,gensz,messz,i,j,k;
do
{
clrscr();
printf("enter bit sequence for the frame:\t");
scanf("%s",frame);
printf("\n enter bit sequence for generator polynomial: \t");
scanf("%s",gen);
frmsz=strlen(frame);
printf("%d",frmsz);
gensz=strlen(gen);
if(gen[0]=='0'||gen[gensz-1]=='0')
{
printf("\n enter another generator polynomial it should start and end with one:");
scanf("%s",gen);
7
DATE: ………………………….
}
messz=frmsz+gensz-1;
strcpy(mess,frame);
for(i=frmsz;i<messz;i++)
mess[i]='0';
mess[i++]='\0';
printf("\n give data frame is:%s",frame);
for(i=0;i<frmsz;i++)
{
if(mess[i]=='1')
{
for(j=i,k=0;k<gensz;j++,k++)
{
if(mess[j]==gen[k])
mess[j]='0';
else mess[j]='1';
}
}
}
for(i=0;i<frmsz;i++)
mess[i]=frame[i];
printf("\n give data frame is: %s",frame);
printf("\n generator polynomial is: %s",gen);
8
DATE: ………………………….
printf("\n message to be transmitted is: %s",mess);
printf("\n do you want to continue");
fflush(stdin);
scanf("%c",&ch);
}
while(ch=='y'||ch=='Y');
getch();
}
OUTPUT:
9
DATE: ………………………….
/*WRITE A PROGRAM FOR CHECK SUM*/
10
DATE: ………………………….
PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<string.h>
void main()
{
char frame[30],gen[35],mess[30],ch;
int frmsz,gensz,messz,i,j,k;
clrscr();
do
{
printf("enter transmitted message:\n");
scanf("%s",&mess);
printf("enter bit sequence for generator polynomial:\n");
scanf("%s",&gen);
messz=strlen(mess);
gensz=strlen(gen);
frmsz=messz-gensz+1;
for(i=0;i<frmsz;i++)
frame[i]=mess[i];
frame[1]='\0';
for(i=0;i<frmsz;i++)
11
DATE: ………………………….
if(mess[i]=='1')
for(j=i,k=0;k<=gensz;j++,k++)
if(mess[i]==gen[k])
mess[j]='0';
else
mess[j]='1';
printf("\n");
for(i=0;i<messz;i++)
if(mess[i]=='1')
{
printf("\n received message is invalid");
}
else
printf("\n received message is valid");
printf("\n generated polynomial %s",gen);
printf("\n data frame is %s",frame);
printf("\n do you want to continue:");
fflush(stdin);
scanf("%c",&ch);
}
while(ch=='y');
getch();
12
DATE: ………………………….
}
OUTPUT:
/*WRITE A PROGRAM FOR SHORTEST PATH*/
13
DATE: ………………………….
PROGRAM:
#include<stdio.h>
#include<conio.h>
#define MAXNODES 10
#define INFINITY 10000
struct state
{
int predecessor;
int length;
enum
{
permanent,tentative
}
label;
}
state[MAXNODES];
int dist[MAXNODES][MAXNODES],n;
void shortestpath(int s,int t,char path[])
{
int i,k,min;
struct state *p;
for(p=&state[0];p<&state[n];p++)
14
DATE: ………………………….
{
p->predecessor=-1;
p->length=INFINITY;
p->label=tentative;
}
state[t].length=0;
state[t].label=permanent;
k=t;
do
{
for(i=0;i<n;i++)
if(dist[k][i]!=0&&state[i].label==tentative)
{
if(state[k].length+dist[k][i]<state[i].length)
{
state[i].predecessor=k;
state[i].length=state[k].length+dist[k][i];
}
}
k=0;
min=INFINITY;
for(i=0;i<n;i++)
15
DATE: ………………………….
if(state[i].label==tentative&&state[i].length<min)
{
min=state[i].length;
k=i;
}
state[k].label=permanent;
}
while(k!=s);
i=0;
k=s;
do
{
path[i++]=(char)('A'+k);
k=state[k].predecessor;
}while(k>=0);
path[i]='\0';
printf("%s\n",path);
}
void main()
{
int i,j;
int path[10],s;
char ch;
16
DATE: ………………………….
clrscr();
printf("Enter the number of nodes\t");
scanf("%d",&n);
printf("Enter weighted matrix for undirected graph\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
scanf("%d",&dist[i][j]);
do
{
printf("\n0-A,1-B,2-C,3-D,--------------------\n");
printf("Enter the second node to which shortest path is to be found\t");
scanf("%d",&s);
printf("\nThe shortest path is as follows from given node\n");
for(i=0;i<n;i++)
if(i!=s)
{
char null[1]={'\0'};
strcpy(path,null);
shortestpath(s,i,path);
}
printf("Do u want to continue:");
fflush(stdin);
scanf("%c",&ch);
17
DATE: ………………………….
}while(ch=='y');
getch();
}
OUTPUT:
/*WRITE A PROGRAM FOR RSA ALGORITHM*/
18
DATE: ………………………….
PROGRAM:
#include<stdio.h>
#include<string.h>
#include<math.h>
#include<conio.h>
void main()
{
int n,i,s,n2,k1,p,q,d,m1,e1,l5,z,p2[30],s1,c[30];
unsigned long int l3,m,l4,k2;
double l2,l1,l6;
float e,l;
char p1[30];
clrscr();
printf("enter the two primes p and q:");
scanf("%d %d",&p,&q);
n=p*q;
z=((p-1)*(q-1));
printf("enter the value of d:\n");
scanf("%d",&d);
l=l*abs(z);
e=ceil(l/d);
19
DATE: ………………………….
printf("%d %d %d %f\n",n,z,e);
printf("ENCRYPTION_CIPHERTEXT\n");
printf("enter the plain text\n");
scanf("%s",p1);
for(i=0;i<strlen(p1);i++)
{
s=p1[i]-64;
printf("%d",s);
e1=(int)e;
l1=pow(((double)s),((double)e1));
l4=(unsigned long int)l1;
k2=l4%n;
c[i]=(int)k2;
printf("cipher:%d\n",c[i]);
}
printf("\n");
for(i=0;i<strlen(p1);i++)
{
l2=(pow(((double)c[i]),((double)d)));
l5=(int)(l2/n);
l6=15*33;
m=l2-l6;
m1=(int)m;
20
DATE: ………………………….
k1=m1+64;
printf("%c\n",k1);
}
getch();
}
OUTPUT:
/*WRITE A PROGRAM ON HIERARCHIAL ROUTING*/
21
DATE: ………………………….
PROGRAM:
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<ctype.h>
struct hierar
{
char node[10];
char line[10];
int hops;
}
state[20];
void main()
{
int i,boo,small,t1,t2,j,n;
char ch,rnode[10],temp[10];
clrscr();
printf("enter the number of nodes:\n");
scanf("%d",&n);
printf("enter the %d number of nodes,line,hops:\n",n);
for(i=0;i<=n;i++)
scanf("%s %s %d",&state[i].node,&state[i].line,&state[i].hops);
22
DATE: ………………………….
clrscr();
getch();
printf("\n\tnode\tline\thops\n");
printf("---------------\n");
for(i=0;i<n;i++)
printf("\n %s\t%s\t%d\n",state[i].node,state[i].line,state[i].hops);
printf("enter the starting point:");
scanf("%s",rnode);
printf("\nnode\tline\thops\n");
printf("-------------\n");
for(i=0;i<=n;i++)
{
t1=toascii(rnode[0]);
t2=toascii(state[i].node[0]);
if(t1==t2)
boo=0;
else
boo=1;
if(boo==0)
printf("%s \t%s\t%d\n",state[i].node,state[i].line,state[i].hops);
else
{
printf("%c",state[i].node[0]);
23
DATE: ………………………….
printf("\t\t %s",state[i].line);
strcpy(temp,state[i].node);
small=state[i].hops;
for(j=i;temp[0]==state[i].node[0];j++)
{
if(state[j].hops<=small)
small=state[j].hops;
i++;
}
printf("\t\t%d\n",small);
}
}
getch();
}
OUTPUT:
24
DATE: ………………………….
25
DATE: ………………………….
26
DATE: ………………………….
27