اطلاعیه

Collapse
No announcement yet.

الگوريتم شماره گذاري رئوس به زبان سي

Collapse
X
 
  • Filter
  • زمان
  • Show
Clear All
new posts

  • الگوريتم شماره گذاري رئوس به زبان سي

    من الگوريتم شماره گذاري رئوس رو با سي نوشتم خودم كه خيلي باهاش حال ميكنم مي رزارمش شايد شما هم خوشتون بياد
    براي اونايي كه احتمالا ندونن اين چيه ميگم كه در درس "ساختمانهاي گسسته" سه الگوريتم مهم براي روتر ها (مسير يابها) وجود داره 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;
    }
    طريقه استفاده:شما ابتدا تعداد رئوس ((v(G) را وارد كنيد بعد يك نامگذاري دلخواه به رئوستون بدين و بعدش ماتريسش رو بنويسين اگه از الف به ب مسيري بود در ماتريس عدد يك و در غير اينصورت عدد صفر را وارد كنيد توجه كتيد كه گراف ما از نوع جهت دار است
    بعد برنامه به شما ميگويد كه به ترتيب رئوس انتخابي شما بايد در اصل چندمين راس باشد
    مثلا:
    v1,v2,v3
    را شما انتخاب ميكنيد و بعد ماترسي را رسم ميكنيد بهد برنامه به شما ميگويد:
    v1=2,v2=3,v3=1
    يعني رئوسي كه به نامهاي v1,v2,v3 انتخاب كرديد در اصل جابجا بوده و به ترتيب بالا اينطوري خواهد بود:v3 راس اول v1 راس دوم v2 راس سوم
    بسه؟
Working...
X