الگوریتم پریم Prim - تالار گفتمان آذر فروم





دعوت به همکاری با آذر فروم

 

الگوریتم پریم Prim
زمان کنونی: 19-09-1395،11:05 ب.ظ
کاربران در حال بازدید این موضوع: 1 مهمان
نویسنده: ARAGOORN
آخرین ارسال: ARAGOORN
پاسخ: 1
بازدید: 708

 
 
رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5

موضوع: الگوریتم پریم Prim
ارسال: #1
الگوریتم پریم Prim



 
حالت من: انتخاب نشده
کد:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>

int perim (int set[],struct krus edge[],int n,int m);
void sort(struct krus ed[],int m);

struct krus{
        int v1;
        int v2;
        int weight;
};

void main()
{
  clrscr();
  int n,m;

  cout<<"Input Num Vertex : ";
  cin>>n;
  int set[10];
  for (int i=0;i<n;i++)
     set[i]=i;

  cout<<"Input Num Yal : ";
  cin>>m;
  struct krus edge[20];

  for (i=0;i<m;i++)
  {
   cout<<" Num V1 : ";  cin>>edge[i].v1;
   cout<<" Num V2 : ";  cin>>edge[i].v2;
   cout<<" Weight : ";  cin>>edge[i].weight;
   gotoxy(wherex()+30,wherey()-2);
   cout<<"("<<edge[i].v1<<","<<edge[i].v2<<") => W :"<<edge[i].weight<<"\n";
   gotoxy(1,wherey()+2);
  }
   cout<<"\nWeight Is : "<<perim(set,edge,n,m);
  getch();
}
//***********************************************
int perim(int set[],struct krus edge[],int n,int m)
{
int fe=0;
int p=0;
struct krus e;
while (fe<n-1)
{
  //********************************
  int y=0;
  e.weight=0;
  for (int i=0;i<m;i++)
    if ((set[edge[i].v1]==0 && set[edge[i].v2]!=0) || (set[edge[i].v2]==0 && set[edge[i].v1]!=0))
       {
     if(y==0)
       {
         e=edge[i];
         y++;
        }
     else
        if (e.weight>edge[i].weight)
        e=edge[i];
       }
   //**********************************
  if (y!=0)
  {
   p+=e.weight;
   cout<<"("<<e.v1<<","<<e.v2<<") => W :"<<e.weight<<"\t";
   set[e.v1]=0;
   set[e.v2]=0;
   fe++;
  }
   else
      break;
  }
  return p;

}
[align=left]



13-03-1390 08:51 ق.ظ
 


[-]
پاسخ سریع
پیام
پاسخ خود را برای این پیام در اینجا بنویسید.


کد تصویری
royalfuns
(غیر حساس به بزرگی و کوچکی حروف)
لطفاً کد نشان داده شده در تصویر را وارد نمایید. این اقدام جهت جلوگیری از ارسال‌های خودکار ضروری می‌باشد.

پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان