Download - Parent-Child List Algorithm Code
-
7/25/2019 Parent-Child List Algorithm Code
1/7
#i ncl ude
#i ncl ude
#i ncl ude
#def i ne PI 3. 14159265
#def i ne R3 1. 73205080
typedef struct sensor
{
i nt i d, VP[6], G[6], sl ave_count , vp_count ;
i nt pt [1][2];
char status;
i nt S[1000], L[1000];
f l oat o_pt [1][2];
}sensor ;
voi dnei ghbor _di scovery(sensor , i nt , sensor x[]);
voi dsnap(i nt , i nt , i nt , i nt , sensor x[]);
i nt s_push(i nt , i nt , i nt , sensor n[]);
i nt r eq(i nt , i nt , i nt , sensor n[]);
i nt mov_cond(i nt , i nt , sensor );
i nt sol ve(i nt );
i nt t , no_l ev=0, msg_count =0, count =0;
i nt mai n()
{
FI LE *f p, *f f;
f p=f open("out put . t xt " ,"w" );f f=f open("coor di nates. t xt ","w" );
i nt n,s_ i ni t =0,x1,y1,x2,y2,pt _depl oy[1][2];
i nt i ,j ,k,l ,m,p=0,i ncr =0,r ,s;
pr i nt f(" \ nEnter t he number of sensors : ");
scanf("%d" , &n);
sensor node[n];
pr i nt f(" \ nEnter x1, x2, y1, y2 : ");
scanf("%d%d%d%d" , &x1, &x2, &y1, &y2);
pt _depl oy[0][0] = (x1+x2)/2;
pt _depl oy[0][1] = (y1+y2)/2;
for(i =0;i
-
7/25/2019 Parent-Child List Algorithm Code
2/7
node[i ].o_pt [0][0] = pt_depl oy[0][1];
node[i ].o_pt [0][1] = pt_depl oy[0][1];
node[i ].status = ' f ' ;
node[i ].sl ave_count = 0;
node[i ].vp_count = 6;
l =0;for(k=0;k
-
7/25/2019 Parent-Child List Algorithm Code
3/7
snap(s_ i ni t , j , node[s_ i ni t ].L[k], n, node);
j ++;
}
}
if (j ==6)
break;}
for(l =1;l
-
7/25/2019 Parent-Child List Algorithm Code
4/7
s=0;
for(i =k;i >0;i --)
s += (i *6);
s+=1;
if (s==n)
msg_count += (2*pow(k,2)*(k*6));else
{
j =0;
j = (k*6)-(s-n);
msg_count += (2*pow(k,2)*j );
}
}
for(j =0;j
-
7/25/2019 Parent-Child List Algorithm Code
5/7
if (p!=-1)
return (r eq(p, t , n, node));
}
}
else
{j =0;
while(j
-
7/25/2019 Parent-Child List Algorithm Code
6/7
}
if((node[i ].pt [0][0] == s.pt [0][0]+1 && node[i ].pt [0][1] == s.pt [0][1]+1)
&&(node[s.i d].VP[1]!=-1))
{
node[s.i d].vp_count --;
node[s.i d].VP[1]=-1;}
if((node[i ].pt [0][0] == s.pt [0][0]-1 && node[i ].pt [0][1] == s.pt [0][1]+1)
&&(node[s.i d].VP[2]!=-1))
{
node[s.i d].vp_count --;
node[s.i d].VP[2]=-1;
}
if((node[i ].pt [0][0] == s.pt [0][0]-2 && node[i ].pt [0][1] == s.pt [0][1])
&&(node[s.i d].VP[3]!=-1))
{
node[s.i d].vp_count --;
node[s.i d].VP[3]=-1;
}
if((node[i ].pt [0][0] == s.pt [0][0]-1 && node[i ].pt [0][1] == s.pt [0][1]-1)
&&(node[s.i d].VP[4]!=-1))
{
node[s.i d].vp_count --;
node[s.i d].VP[4]=-1;
}
if((node[i ].pt [0][0] == s.pt [0][0]+1 && node[i ].pt [0][1] == s.pt [0][1]-1)
&&(node[s.i d].VP[5]!=-1))
{
node[s.i d].vp_count --;node[s.i d].VP[5]=-1;
}
}
}
}
voi dsnap(i nt s, i nt j , i nt i , i nt n, sensor node[n])
{
i nt k;
if (node[i ].status == ' s' )
{node[i ].pt [0][0] = r ound(node[s].pt [0][0] + (R3 * cos(j *(PI /3))));
node[i ].pt [0][1] = r ound(node[s].pt [0][1] + (R3 * si n(j *(PI /3))));
node[i ].o_pt [0][0] = node[s].o_pt [0][0] + (R3 * cos(j *(PI /3)));
node[i ].o_pt [0][1] = node[s].o_pt [0][1] + (R3 * si n(j *(PI /3)));
node[i ].status = ' S';
for (k=0; k
-
7/25/2019 Parent-Child List Algorithm Code
7/7
{
node[s].S[k] = -1;
node[s].sl ave_count --;
}
}
}}
i nt mov_cond(i nt i d_y, i nt Sy, sensor x)
{
if((x.st at us==' S') && (x.sl ave_count >0))
return 1;
else
return 0;
}
i nt s_push(i nt s, i nt i d_y, i nt n, sensor node[n])
{
i nt i ,k;
k = node[i d_y].sl ave_count ;
for(i =0;i