الگوریتم دایجسترا با زبان C سی همراه سورس کد

  • شنبه ۲۳ آذر ۱۳۹۲
  • بازدید 1,431 نفر
  • 1 امتیاز2 امتیاز3 امتیاز4 امتیاز5 امتیاز (277 امتیاز از 80 رای)
    Loading...

dijkstra c الگوریتم دایجسترا با زبان C سی همراه سورس کد

الگوریتم دایجسترا با زبان C سی همراه سورس کد

در این پست برای شما کاربران عزیز، الگوریتم دایجسترا با زبان C سی همراه سورس کد را آماده کرده ایم که امیدواریم مورد استفاده قرار گیرد.

در نظریه گراف، الگوریتم دایجسترا (Dijkstra’s algorithm) یکی از الگوریتم‌های پیمایش گراف است که توسط دانشمند هلندی علوم رایانه، اِدْسْخِر دایْکْسْترا در سال ۱۹۵۹ ارایه شد.

این الگوریتم یک الگوریتم‌ پیمایش گراف است که مسئلهٔ کوتاه‌ترین مسیر از مبدأ واحد را برای گراف‌های وزن‌دار حل می‌کند و در نهایت با ایجاد درخت کوتاه‌ترین مسیر، کوتاه‌ترین مسیر از مبدأ به همهٔ رأس‌های گراف را به دست می‌دهد. همچنین می‌توان از این الگوریتم برای پیدا کردن کوتاه‌ترین مسیر از مبدأ تا رأس مقصد استفاده کرد که در حین اجرای الگوریتم به محض پیداشدن کوتاه‌ترین مسیر از مبدأ به مقصد، الگوریتم را متوقف کرد.

الگوریتم دایکسترا به نام کوتاه ترین مسیر تک منبع نیز معروف است و شبیه الگوریتم پریم است. در صورتی که گراف یال با وزن منفی داشته باشد، این الگوریتم درست کار نمی‌کند و خروجی مناسبی را نمی دهد و باید از الگوریتم‌های دیگر مثل الگوریتم بلمن فورد که پیچیدگی زمانی آنها بیشتر است استفاده کنیم.

در ادامه می توانید قسمت های از کد الگوریتم دایجسترا با زبان C سی را ملاحظه کنید.

تکه کد برنامه الگوریتم دایجسترا با زبان C سی:

جهت دریافت کد کامل این برنامه از قسمت خرید محصول اقدام کنید
#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<string.h>
#include<math.h>
#define IN 99
#define N 6
int dijkstra(int cost[][N], int source, int target);
int dijsktra(int cost[][N],int source,int target)
{
     int dist[N],prev[N],selected[N]={0},i,m,min,start,d,j;
     char path[N];
     for(i=1;i< N;i++)
     {
        dist[i] = IN; 
          prev[i] = -1;
    } 
     start = source;
     selected[start]=1;
     dist[start] = 0;
    while(selected[target] ==0) 
     {
        min = IN; 
        m = 0; 
        for(i=1;i< N;i++) 
        { 
            d = dist[start] +cost[start][i]; 
            if(d< dist[i]&&selected[i]==0) 
            { 
                dist[i] = d; 
                prev[i] = start; 
            } 
            if(min>dist[i] && selected[i]==0) 
            { 
                     min = dist[i];
                     m = i;
                }
          }
          start = m;
          selected[start] = 1;
     }
     start = target;
    j = 0; 
     while(start != -1)
    { 
          path[j++] = start+65;
        start = prev[start]; 
    } 
     path[j]='\0';
    strrev(path); 
    printf("%s", path); 
     return dist[target];
}

پروژه ها و آموزش های برنامه نویسی

پروژه ها و آموزش های برنامه نویسی

مشاهده مطالب برنامه نویسی

خوشحال خواهیم شد اگر نظر خودتون رو درباره این مطلب ثبت کنید

خطا!دکمه ریفریش را بزنید

    لیســــــــت پــــــــروژه های انتشــــــــار نشده ( 22 موضوع )

    مشاهده لیست کامل
    مشاهده لیست کامل
    socket programing آموزش برنامه نویسی آموزش سی شارپ بازی تحت شبکه بازی تحت شبکه برای درس مهندسی اینترنت بازی تحت شبکه به زبان سی شارپ برنامه تحت شبکه با سی شارپ برنامه نویسی ترجمه مقاله ترجمه مقاله شبکه خرید سورس بازی تحت شبکه دانلود بازی تحت شبکه دانلود رایگان پروژه های دانشجویی دانلود سورس برنامه دانلود سورس رایگان دانلود نرم افزار دانلود پروژه دانشجویی دانلود پروژه رایگان دانلود پروژه های دانشجویی دانلود کتاب دانلود کتاب آموزشی دانلود کتاب اموزشی سورس بازی با socket programing سورس رایگان سورس کد بازی تحت شبکه سورس کد بازی تحت شبکه با C# سورس کد بازی تحت شبکه چند نفره سوکت پروگرمین نحوه نوشتن برنامه تحت شبکه نحوه نوشتن برنامه تحت شبکه به زبان سی شارپ پروژه arena پروژه matlab پروژه ns2 پروژه opnet پروژه برای درس مهندسی اینترنت پروژه سیمولینک matlab پروژه مهندسی صنایع پروژه مهندسی صنایع با ارنا پروژه های آماده با OpenGL پروژه های آماده با OpenGL در سی پلاس پلاس پروژه های آماده با ارنا پروژه های آماده برای درس گرافیک کامپیوتری پروژه هوش مصنوعی پروژه پردازش تصویر matlab پروژه پردازش سیگنال matlab