একটি দ্বিপক্ষীয় গ্রাফ হল একটি গ্রাফ যেখানে যদি দুটি রঙ ব্যবহার করে গ্রাফ রঙ করা সম্ভব হয় যেমন; একটি সেটের শীর্ষবিন্দু একই রঙে রঙিন হয়। এই প্রোগ্রামে আমরা ইনপুট হিসাবে একটি দ্বিপক্ষীয় গ্রাফ নিই এবং শীর্ষবিন্দুগুলিকে রঙ করার পরে প্রতিটি শীর্ষবিন্দুর রঙ আউটপুট করি৷
অ্যালগরিদম
Begin BFS অ্যালগরিদম সমস্ত শীর্ষবিন্দু অতিক্রম করতে ব্যবহৃত হয়। একটি শীর্ষবিন্দু নিন এবং এটি হলুদ রঙ করুন। এর সমস্ত প্রতিবেশী শীর্ষবিন্দুকে নীল হিসাবে রঙ করুন। পরবর্তী স্তরের শীর্ষবিন্দুগুলিকে হলুদ হিসাবে রঙ করুন এবং তাই, যতক্ষণ না সমস্ত শীর্ষবিন্দু রঙিন হয়।উদাহরণ কোড
#includeNamespace ব্যবহার করে নোড, int n) { সারি q; if(v[নোড]) রিটার্ন; রঙ [নোড] =n; v[নোড] =1; for(i=0;i >n>>e; cout<<"'Y' হল হলুদ রঙের জন্য এবং 'B' হল নীল রঙের জন্য।"; cout<<"\n"; g.resize(n); color.resize(n); memset(v,0,sizeof(v)); for(i=0;i >a>>b; a--; b--; g[a]. push_back(b); g[b]. push_back(a); } c(0,1); for(i=0;i আউটপুট
যথাক্রমে শীর্ষবিন্দু এবং প্রান্তের সংখ্যা লিখুন:4 3'Y' হল হলুদ রঙের জন্য এবং 'B' হল নীল রঙের জন্য৷ প্রান্ত 1 :1 2 প্রান্তের প্রান্তের শীর্ষবিন্দুগুলি লিখুন 2 :3 2প্রান্তের প্রান্তের শীর্ষবিন্দুগুলি লিখুন 3 :4 21 Y2 B3 B4 B