در این قسمت تیم کدگیت سورس گراف دو بخشی در جاوا را تهیه کرده است. این سورس کد بدین صورت می باشد که یک گراف را به عنوان ورودی دریافت می کند. سپس بررسی می کند آیا این گراف دوبخشی است یا خیر. گراف دو بخشی به گرافی گفته می شود که راسهای آن را می توان به دو بخش تقسیم کرد و یالها، این دو بخش را به هم متصل میکنند همچنین هیچ دو راسی در یک بخش به یکدیگر یالی ندارد (با یکدیگر همسایه نیستند).در این سورس کد علاوه بر تشخیص گراف دوبخشی، گراف و پشته نیز پیاده سازی گردیده است. با ما همراه باشید تا این الگوریتم را به شما معرفی کنیم. در ادامه پیشنهاد میکنیم از دیگر سورسهای ما دیدن فرمایید(همگی سورس های جاوا هستند):
سورس گراف دو بخشی در جاوا
الگوریتمهای گراف یکی از مسائلی است که سالیان دراز به دنبال حل آنها بودند و امروز بسیاری از مسائل آن حل گردیده است. از جمله این الگوریتمها میتوان به جستجوی اول سطح، جستجوی اول عمق، جستجوی عمق محدود، پیمایش پیشترتیب، پیمایش میانترتیب و … نام برد. در این قسمت تصمیم گرفتیم سورس گراف دو بخشی در جاوا را تهیه کنیم. این الگوریتم بررسی می کند آیا راسهای گراف را می توان در دو مجموعه جداگانه قرار داد به طوریکه یالهای گراف بین راسهای دو مجموعه باشند و هیچ دو راسی از یک مجموعه به یکدیگر یالی نداشته باشند. این الگوریتم گرچه کمی پیچیده به نظر می رسد اما در پیاده سازی بسیار آسان است.
نحوه اجرا
زبان برنامه نویسی این گراف دو بخشی، جاوا بوده و فرمت فایل .java است. بعد از تهیه سورس از سایت کدگیت فایلی با فرمت zip در اختیار شما قرار میگیرد. فایل را از حالت zip خارج کرده تا بتوانید سورس کد را ببینید. فایل اصلی برنامه با نام Bipartite.java میباشد. این فایل را اجرا کنید تا برنامه اجرا شود. پس از اجرا خروجی زیر را مشاهده خواهید کرد:
5 vertices, 5 edges
0: 3 2 1
1: 2 0
2: 1 0
3: 4 0
4: 3
Graph has an odd-length cycle: 0 2 1 0
9 vertices, 8 edges
0: 8 5
1: 7
2: 6 5
3: 8 7
4: 8
5: 2 0
6: 2
7: 3 1
8: 4 3 0
Graph is bipartite
0: false
1: false
2: false
3: false
4: false
5: true
6: true
7: true
8: true
همانطور که در خروجی مشاهده می کنید ابتدا گراف را چاپ کرده سپس دو بخشی بودن آن بررسی می گردد. اگر دو بخشی باشد گراف در خروجی Graph is bipartite چاپ می گردد در غیر این صورت Graph is NOT bipartite چاپ خواهد شد. دوگرافی که به عنوان ورودی در برنامه استفاده گردیده است در تصویر زیر میبینید.
نقد و بررسیها
هنوز بررسیای ثبت نشده است.