زمان کنونی: ۱۳ اردیبهشت ۱۴۰۳, ۰۱:۴۱ ب.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

الگوریتم دیکسترا را چطور با لیست پیوندی می شه انجام داد ؟

ارسال:
  

marjan2001 پرسیده:

الگوریتم دیکسترا را چطور با لیست پیوندی می شه انجام داد ؟

الگوریتم دیکسترا را چطور با لیست پیوندی می شه انجام داد

۰
ارسال:
  

mammad پاسخ داده:

RE: الگوریتم دیکسترا با لیست پیوندی

الگوریتم Dijkstra اون طور که تو کتاب CLRS اومده به این شکله:
کد:
DIJKSTRA(G, w, s)
INITIALIZE-SINGLE-SOURCE(G, s)
S←∅​
Q←V[G]
while Q≠∅​
do {
u ← EXTRACT-MIN(Q)
S←S∪{u}
for each vertex v in Adj[u]
do  RELAX(u,v,w)
}

اگه منظورتون از "با استفاده از لیستهای پیوندی" استفاده از لیست مجاورتی برای نمایش گراف باشه، پیش فرض این الگوریتم تو این کتاب استفاده از لیست مجاورتیه.
کافیه آرایه ای به نام Adj به اندازه تعداد رئوس گراف در نظر بگیرید به طوری که عضو uام Adj لیستی از رئوس مجاور به رأس u باشند. مثلا اگر رأس ۲ با یالی به وزن ۳ به رأس ۴ و با یالی به وزن ۶ به رأس ۵ وصل باشه، لیست مربوط به رأس ۲ به این شکل می شه:
Adj[2]----><4, 3>----><5, 6>----->NIL
یعنی هر گره لیست، شامل شماره رأس، وزن یال متصل این رأس به رأس u و اشاره گری به رأس مجاور بعدیه.
روش کار الگوریتم هم اینه که ابتدا به رأس مبدأ مقدار صفر و به بقیه رأسها مقدار بی نهایت رو نسبت می ده (مقداردهی اولیه فاصله تخمینی). بعد تمام رأسها رو در صف اولویت مینیمم Q قرار می ده (با توجه به فاصله تخمینی) و یک به یک رأسی رو که فاصله براورد شده براش کمترین باشه رو از صف بیرون می کشه و تمام رأسهای مجاورش رو "آرامسازی" می کنه (یعنی اگه فاصله تخمینی با عبور از رأس u کمتر از فاصله تخمینی قبلی باشه، فاصله تخمینی رو اصلاح می کنه).

در خط for each باید روی همه رئوس لیست پیوندی رأس u حرکت بشه تا روشون آرامسازی انجام بشه.



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  چطور درصد زبانم رو به بالای ۹۰-۸۰ برسونم؟ s.gg ۸ ۲,۲۳۲ ۲۳ اسفند ۱۴۰۱ ۰۹:۰۵ ق.ظ
آخرین ارسال: s.gg
  چطور میتوان بهتر زندگی کرد؟ شاپری ۲۴ ۱۳,۵۱۲ ۲۲ اسفند ۱۴۰۱ ۰۷:۴۹ ق.ظ
آخرین ارسال: s.gg
  انجام پایان نامه برای داده کاوی استقرایی روی FIM ویافتن ARM با دوتا یا بیشتر CUDA GPU zaliabbass ۲ ۴,۰۶۸ ۰۶ اسفند ۱۳۹۸ ۰۸:۳۳ ب.ظ
آخرین ارسال: bankabzar
  برنامه ریزی و کارهایی که باید انجام بدم fatemesoleimani ۲۰۸ ۶۳,۶۶۰ ۰۲ اسفند ۱۳۹۸ ۱۱:۵۱ ق.ظ
آخرین ارسال: فاطمه سلیمانی
  فوری : چطور در جو کنکور و درس خوندن میمونید؟ MohsenRezaei ۸ ۴,۵۱۹ ۱۱ آذر ۱۳۹۸ ۰۹:۵۵ ب.ظ
آخرین ارسال: marvelous
  برای استخدام به اخرین مدرک نگاه میکنن یا میشه مدرک پایین تر ارائه داد؟ R.g- ۴ ۴,۵۲۰ ۲۰ مرداد ۱۳۹۸ ۰۹:۲۵ ب.ظ
آخرین ارسال: marvelous
Smile چطور امکان قبولی در رشته رایانش امن هست؟ نوشتن ۲ ۴,۰۴۶ ۰۷ تیر ۱۳۹۸ ۱۰:۳۲ ق.ظ
آخرین ارسال: نوشتن
Question لیست پیوندی porseshgar ۰ ۱,۴۴۶ ۲۸ بهمن ۱۳۹۷ ۰۳:۵۱ ب.ظ
آخرین ارسال: porseshgar
Music دکترای فناوری اطلاعات ۹۷ چطور بود؟ shivap ۰ ۲,۲۴۹ ۰۸ اسفند ۱۳۹۶ ۰۷:۴۸ ب.ظ
آخرین ارسال: shivap
  ویدیوهای سایت دانشگاه فردوسی مشهد رو چطور دانلود کنیم؟ saeid4x ۱ ۲,۴۰۹ ۰۶ اسفند ۱۳۹۶ ۱۰:۲۲ ق.ظ
آخرین ارسال: αɾια

پرش به انجمن:

Can I see some ID?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close