من الگوريتم شماره گذاري رئوس رو با سي نوشتم خودم كه خيلي باهاش Øال ميكنم مي رزارمش شايد شما هم خوشتون بياد
براي اونايي كه اØتمالا ندونن اين چيه ميگم كه در درس "ساختمانهاي گسسته" سه الگوريتم مهم براي روتر ها (مسير يابها) وجود داره 1-dijkstra 2-felury
3-و شماره گداري رئوس
من اون دوتا ديگه رو هم نوشتم اگه استقبال بشه اونا رو هم ميزارم
طريقه استÙاده:شما ابتدا تعداد رئوس ((v(G) را وارد كنيد بعد يك نامگذاري دلخواه به رئوستون بدين Ùˆ بعدش ماتريسش رو بنويسين اگه از ال٠به ب مسيري بود در ماتريس عدد يك Ùˆ در غير اينصورت عدد صÙر را وارد كنيد توجه كتيد كه گرا٠ما از نوع جهت دار است
بعد برنامه به شما ميگويد كه به ترتيب رئوس انتخابي شما بايد در اصل چندمين راس باشد
مثلا:
v1,v2,v3
را شما انتخاب ميكنيد و بعد ماترسي را رسم ميكنيد بهد برنامه به شما ميگويد:
v1=2,v2=3,v3=1
يعني رئوسي كه به نامهاي v1,v2,v3 انتخاب كرديد در اصل جابجا بوده و به ترتيب بالا اينطوري خواهد بود:v3 راس اول v1 راس دوم v2 راس سوم
بسه؟
براي اونايي كه اØتمالا ندونن اين چيه ميگم كه در درس "ساختمانهاي گسسته" سه الگوريتم مهم براي روتر ها (مسير يابها) وجود داره 1-dijkstra 2-felury
3-و شماره گداري رئوس
من اون دوتا ديگه رو هم نوشتم اگه استقبال بشه اونا رو هم ميزارم
// In The name of ALLAH
//2007 1385
//Order V(G) Algorithm
//Created by " SATAN STAR >> [email protected] " & "outworld-boy >> [email protected]"
//All right reserved Shabgard © >> www.shabgard.org
#include<stdio.h>
#include<conio.h>
#include<string.h>
int k[100],v,w[100][100],u[100],n,i,j,m;
int issearch(int [],int);
void main(){
clrscr();
v=5;
printf("\\\\\\........Order V(G) Algorithm.........//////////");
getch();
printf("Please enter number of V(G):");
scanf("%d",&v);
if(v==0) printf("Stop becaus your V(G)=@");
printf("Please enter Matrix of your graph");
printf("\n\nEnter 1 when there is an edge and 0 for isnt any edge between v an u");
printf("\n\nPersse enter key...");
getch();
for(i=1;i<=v;i++)
for(j=1;j<=v;j++)
{
printf("\nEnter %d , %d :",i,j);
scanf("%d",&w[i][j]);
}
m=v+1;
st:
n=10;
m--;
i=-1;
whi:
i++;
while(n!=0){
n=0;
i++;
for(j=1;j<=v;j++)
n=n+w[i][j];
}
if(issearch(k,i)==1) goto whi;
k[m]=i;
u[m]=i;
for(j=1;j<=v;j++)
{
w[j][i]=0;
}
if(m==1) goto end;
i=0;
goto st;
end:
clrscr();
for(i=1;i<=v;i++){
printf(" V%d = %d ",u[i],i);
}
printf("\n\n\n\n\n\n\n\nThe end");
getch();
}
int issearch(int k[],int i)
{
int pop;
for(pop=1;pop<=v;pop++)
if(k[pop]==i)
return 1;
return 0;
}
//2007 1385
//Order V(G) Algorithm
//Created by " SATAN STAR >> [email protected] " & "outworld-boy >> [email protected]"
//All right reserved Shabgard © >> www.shabgard.org
#include<stdio.h>
#include<conio.h>
#include<string.h>
int k[100],v,w[100][100],u[100],n,i,j,m;
int issearch(int [],int);
void main(){
clrscr();
v=5;
printf("\\\\\\........Order V(G) Algorithm.........//////////");
getch();
printf("Please enter number of V(G):");
scanf("%d",&v);
if(v==0) printf("Stop becaus your V(G)=@");
printf("Please enter Matrix of your graph");
printf("\n\nEnter 1 when there is an edge and 0 for isnt any edge between v an u");
printf("\n\nPersse enter key...");
getch();
for(i=1;i<=v;i++)
for(j=1;j<=v;j++)
{
printf("\nEnter %d , %d :",i,j);
scanf("%d",&w[i][j]);
}
m=v+1;
st:
n=10;
m--;
i=-1;
whi:
i++;
while(n!=0){
n=0;
i++;
for(j=1;j<=v;j++)
n=n+w[i][j];
}
if(issearch(k,i)==1) goto whi;
k[m]=i;
u[m]=i;
for(j=1;j<=v;j++)
{
w[j][i]=0;
}
if(m==1) goto end;
i=0;
goto st;
end:
clrscr();
for(i=1;i<=v;i++){
printf(" V%d = %d ",u[i],i);
}
printf("\n\n\n\n\n\n\n\nThe end");
getch();
}
int issearch(int k[],int i)
{
int pop;
for(pop=1;pop<=v;pop++)
if(k[pop]==i)
return 1;
return 0;
}
بعد برنامه به شما ميگويد كه به ترتيب رئوس انتخابي شما بايد در اصل چندمين راس باشد
مثلا:
v1,v2,v3
را شما انتخاب ميكنيد و بعد ماترسي را رسم ميكنيد بهد برنامه به شما ميگويد:
v1=2,v2=3,v3=1
يعني رئوسي كه به نامهاي v1,v2,v3 انتخاب كرديد در اصل جابجا بوده و به ترتيب بالا اينطوري خواهد بود:v3 راس اول v1 راس دوم v2 راس سوم
بسه؟