پیاده سازی الگوریتم DFS با سی پلاس و سورس کامل برنامه
|
||||||||||||
توضیحات : پیاده سازی الگوریتم جستجوی اول عمق DFS با سی پلاس در نظریهٔگراف، جستجوی عمق اول (به انگلیسی: Depth-first Search، بهاختصار DFS) یک الگوریتم پیمایشگرافاست که برای پیمایش یا جستجوی یک درخت یا یک گراف به کار میرود. استراتژی جستجوی عمق اول برای پیمایش گراف، همانطور که از نامش پیداست “جستجوی عمیقتر در گراف تا زمانی که امکان دارد” است. پیمایش با انتخاب رأس به عنوان ریشه آغاز میشود. به عنوان یک رأس دیده شده برچسب میخورد. رأس دلخواه از همسایگان انتخاب شده و الگوریتم به صورت بازگشتی از به عنوان ریشه ادامه مییابد.از این پس در هر مرحله وقتی در رأسی مانند قرار گرفتیم که همهٔ همسایگانش دیده شدهاند، اجرای الگوریتم را برای آن رأس خاتمه میدهیم. حال اگر بعد از اجرای الگوریتم با ریشهٔ همهٔ همسایگان برچسب خورده باشند، الگوریتم پایان مییابد. در غیر این صورت رأس دلخواه از همسایگان را که هنوز برچسب نخورده انتخاب میکنیم و جستجو را به صورت بازگشتی از به عنوان ریشه ادامه میدهیم. این روند تامادامیکه همهٔ همسایگان برچسب نخوردهاند ادامه مییابد. البته پیمایش گراف برای تأمین هدفی صورت میگیرد. بر این اساس برای انعطاف پذیر ساختن الگوریتم در قبال کاربردهای مختلف، دو نوع عملیات preWORK و postWORK را به همراهِ بازدید از هر رأس یا یال انجام میدهیم، که preWORK در زمان برچسب خوردنِ رأسِ در حال بازدید، و postWORK بعد از بررسی هر یالِ خروجی از رأسِ در حال بازدید انجام خواهد شد. هر دوی این عملیات وابسته به هدفِ استفاده از الگوریتم، مشخص خواهند شد. الگوریتم بازگشتی جستجوی اول عمق به صورت زیر است. آرایه یک بعدی Visited تعیین می کند آیا راسی قبلاً ملاقات شده است یا خیر. اگر راس vi ملاقات شود Visited[i] برابر با یک می شود. پیچیدگی زمانیمشخص است که الگوریتم، هر یال در گراف بدون جهت رادقیقاً دوبار (یک بار به بهنگام بررسی هر یک از دو انتها) و هر یال در گراف جهتدار را دقیقاً یک بار پیمایش میکند. همچنین هر رأس قابل دسترسی از ریشه دقیقاً یک بار بازدید خواهد شد. پس با فرض همبند بودن گراف و اینکه preWORK و postWORK در (۱)O انجام شوند، پیچیدگیزمانی جستجوی عمق اول (|O(|V|+|E خواهد بود پیاده سازی الگوریتم جستجوی اول عمق DFS با سورس کامل برنامه
== تصویری از محیط فایل اجرایی این پروژه : مشاهده بخشهایی از سورس کد این پروژه :
دانلود کامل پروژه همراه با فایل سورس کد و فایل اجرایی آن
پذیرش و انجام سفارشات پروژه های شما شماره تماس پشتیبانی سایت : ۰۹۳۹۲۷۶۱۶۳۰ |
توجه مهم :
*دوست عزیز در صورت نداشتن رمز پویا یا قطع بودن درگاه بانکی ، لطفا نام پروژه درخواستی خود را جهت هماهنگی برای دریافت شماره کارت واریزی و دریافت لینک دانلود، به واتساپ پشتیبانی سایت ۰۹۳۹۲۷۶۱۶۳۰ ارسال کنید *(از ساعت ۸ الی ۲۳)
دیدگاهتان را بنویسید