কম্পিউটার টিউটোরিয়াল

C++-এ সমস্ত ভার্টেক্সের ডিগ্রি দিয়ে গ্রাফ কনস্ট্রাক্ট


মান লোয়া একটি ভার্টেক্সের তালিকা, এবং তাদের ডিগ্রি দেওয়া আছে। আমাদের সেই ডিগ্রি সিকোয়েন্স থেকে একটি আনডিরেক্টেড গ্রাফ জেনারেট করতে হবে। এতে লুপ বা মাল্টিপল এজ থাকবে না। তাই যদি ডিগ্রি সিকোয়েন্স [2, 2, 1, 1] হয়, তবে গ্রাফটি নিচের মতো হতে পারে

C++-এ সমস্ত ভার্টেক্সের ডিগ্রি দিয়ে গ্রাফ কনস্ট্রাক্ট

এটি সমাধানের জন্য আমরা নিচের ধাপগুলো অনুসরণ করব −

  • এডজেসেন্সি ম্যাট্রিক্স adj ডিফাইন করুন গ্রাফ সংরক্ষণের জন্য

  • প্রতিটি ভার্টেক্স i এর জন্য, করুন

    • প্রতিটি বৈধ ভার্টেক্স j এর জন্য, যা i-এর পরেরগুলো

      • যদি ভার্টেক্স i এবং j-এর ডিগ্রি শূন্যের চেয়ে বড় হয়, তবে সেগুলো সংযুক্ত করুন

  • ম্যাট্রিক্স ডিসপ্লে করুন।

উদাহরণ

#include <iostream> #include <iomanip> using namespace std; void generateGraph(int vert_degree[], int n) {    int adj_mat[n][n];    for(int i = 0; i<n; i++){       for(int j = 0; j < n; j++){          adj_mat[i][j] = 0;       }    }    for (int i = 0; i < n; i++) {       for (int j = i + 1; j < n; j++) {          if (vert_degree[i] > 0 && vert_degree[j] > 0) {             vert_degree[i]--; vert_degree[j]--;             adj_mat[i][j] = adj_mat[j][i] = 1;          }       }    }    cout << endl << setw(3) << " ";    for (int i = 0; i < n; i++)       cout << setw(3) << "(" << i << ")";       cout << endl << endl;    for (int i = 0; i < n; i++) {       cout << setw(4) << "(" << i << ")";    for (int j = 0; j < n; j++)       cout << setw(5) << adj_mat[i][j];       cout << endl;    } } int main() {    int vert_degree[] = { 2, 2, 1, 1, 1 };    int n = sizeof(vert_degree) / sizeof(vert_degree[0]);    generateGraph(vert_degree, n); } 

আউটপুট

      (0)   (1)  (2)  (3)  (4) (0)    0    1    1    0    0 (1)    1    0    0    1    0 (2)    1    0    0    0    0 (3)    0    1    0    0    0 (4)    0    0    0    0    0

  1. C++-এ একটি নির্দিষ্ট নোড থেকে দূরত্ব k-এ থাকা সব নোড প্রিন্ট করা

  2. অনসcaffoldড গ্রাফের সব সাইকেল প্রিন্ট করা C++-তে

  3. সোর্স থেকে ডেস্টিনেশন পর্যন্ত সব পথ প্রিন্ট করা C++-তে

  4. অনিদেশিত গ্রাফে সাইকলের দৈর্ঘ্যের গুণফল C++-তে