چگونه یک گراف را به صورت عمقی (DFS) و سطحی (BFS) پیمایش کنید

خلاصه
1402/12/03

پیمایش گراف به صورت عمقی (DFS) و سطحی (BFS) دو روش پرکاربرد برای مطالعه ویژگی‌های گراف‌ها هستند.

 چگونه یک گراف را به صورت عمقی (DFS) و سطحی (BFS) پیمایش کنید

 چگونه یک گراف را به صورت عمقی (DFS) و سطحی (BFS) پیمایش کنید پیمایش گراف به صورت عمقی (DFS) و سطحی (BFS) دو روش پرکاربرد برای مطالعه ویژگی‌های گراف‌ها هستند. در ادامه، روش‌های پیمایش این دو نوع را توضیح می‌دهم: ۱. پیمایش گراف به صورت عمقی (DFS):
پیمایش عمقی یا DFS از استراتژی Last In, First Out (LIFO) استفاده می‌کند و می‌توانید این کار را با استفاده از یک پشته (Stack) انجام دهید. مراحل اجرای DFS به شرح زیر است: انتخاب یک گره به عنوان نقطه شروع.
گره را به اعتباری برده و در لیست گره‌های قابل دسترس (Visited) ثبت کنید.
همسایه‌های آن گره را بررسی کنید:
اگر یک همسایه‌ای وجود داشت که قبلاً بررسی نشده باشد، آن همسایه را به عنوان گره فعلی انتخاب کنید و به مرحله 2 بازگردید.
اگر تمام همسایه‌ها را بررسی کردید یا همه قبلاً اعتبارسنجی شده بودند، از پشته گره‌های بازگشتی را حذف کرده و به گره‌ای که در آن آغاز شده بودید بازگردید.
۲. پیمایش گراف به صورت سطحی (BFS):
پیمایش سطحی یا BFS از استراتژی First In, First Out (FIFO) استفاده می‌کند و می‌توانید این کار را با استفاده از یک صف (Queue) انجام دهید. مراحل اجرای BFS به شرح زیر است: انتخاب یک گره به عنوان نقطه شروع.
گره را به اعتباری برده و در لیست گره‌های قابل دسترس (Visited) ثبت کنید.
همسایه‌های آن گره را به صف اضافه کنید.
از ابتدا صف یک گره را حذف کنید و همان مراحل 2 و 3 را برای همسایه‌های آن گره انجام دهید.
این فرآیند را تا زمانی که صف خالی نشود ادامه دهید.
با این دو روش، شما می‌توانید تمام گره‌های یک گراف را پیمایش کنید. انتخاب بین DFS و BFS بستگی به نیازها و ویژگی‌های خاص مسئله دارد.    


سایر مقالات آموزشی شرکت نرم افزاری آبان رایان البرز :