CRC
package [Link];
import [Link].*;
public class CRC {
public static void main(String args[])
{
Scanner sc=new Scanner([Link]);
int n;
[Link]("Enter the size of data:");
n=[Link]();
int data[]=new int[n];
[Link]("Enter the data bit by bit:");
for(int i=0;i<n;i++)
{
data[i]=[Link]();
}
[Link]("Enter the size of the divisor:");
n=[Link]();
int divisor[]=new int[n];
[Link]("Enter the divisor, bit by bit:");
for(int i=0;i<n;i++)
{
divisor[i]=[Link]();
}
int remainder[]=divide(data,divisor);
[Link]("Remainder=");
[Link]("The CRC code generated is:\t");
for(int i=0;i<[Link];i++)
{
[Link](data[i]);
}
for(int i=0;i<[Link]-1;i++)
{
[Link](remainder[i]);
}
[Link]();
int sent_data[]=new int [[Link]+[Link]-1];
[Link]("Enter the data received at the receiver:");
for(int i=0;i<sent_data.length;i++)
{
sent_data[i]=[Link]();
}
receive(sent_data,divisor);
}
static int[] divide(int old_data[],int divisor[])
{
int remainder[],i;
int data[]=new int[old_data.length+[Link]];
[Link](old_data,0,data,0,old_data.length);
remainder=new int[[Link]];
for(i=0;i<old_data.length;i++){
if (remainder[0]==1)
{
for(int j=1;j<[Link];j++)
{
remainder[j-1]=exor(remainder[j],divisor[j]);
}
}
else{
for(int j=1;j<[Link];j++)
{
remainder[j-1]=exor(remainder[j],0);
}
}
remainder[[Link]-1]=data[i+[Link]];
}
return remainder;
}
static int exor(int a,int b){
if(a==b)
{
return 0;
}
return 1;
}
static void receive(int data[],int divisor[]){
int remainder[]=divide(data,divisor);
for(int i=0;i<[Link];i++)
{
if (remainder[i]!=0)
{
[Link]("There is an error in received data...");
return;
}
}
[Link]("Data was received without any error.");
}
}
BellmanFord
package [Link];
import [Link];
public class BellmanFord {
private int dist[];
private int n;
public static final int MAX_VALUE=999;
public BellmanFord(int n)
{
this.n=n;
dist=new int[n+1];
}
public void BellmanFordEvaluation(int src, int adj[][])
{
for(int nd=1;nd<=n;nd++)
{
dist[nd]=MAX_VALUE;
}
dist[src]=0;
for(int sn=1;sn<=n;sn++)
{
for(int dn=1;dn<=n;dn++)
{
if(dist[dn]>dist[sn]+adj[sn][dn])
dist[dn]=dist[sn]+adj[sn][dn];
}
}
for(int sn=1;sn<=n;sn++)
{
for(int dn=1;dn<=n;dn++)
{
if(adj[sn][dn]!=MAX_VALUE)
{
if(dist[dn]>dist[sn]+adj[sn][dn])
{
[Link]("The Graph contains negative edge cycle");
}
}
}
}
for(int vertex=1;vertex<=n;vertex++)
{
[Link]("Distance of source "+src+" to "+vertex+" is "+
dist[vertex]);
}
}
public static void main(String[] args)
{
int n;
int src;
Scanner sc= new Scanner([Link]);
[Link]("Enter the number of vertices");
n=[Link]();
int adj[][]=new int [n+1][n+1];
[Link]("Enter the adjacency matrix");
for(int sn=1;sn<=n;sn++)
{
for(int dn=1;dn<=n;dn++)
{
adj[sn][dn]=[Link]();
if(sn==dn)
{
adj[sn][sn]=0;
continue;
}
if(adj[sn][dn]==0)
{
adj[sn][dn]=MAX_VALUE;
}
}
}
[Link]("Enter the source vertex");
src=[Link]();
BellmanFord bellmanford=new BellmanFord(n);
[Link](src, adj);
}
}