মডিউল ১৩_৫ঃ এজ লিস্ট টু ম্যাট্রিক্স

আমরা এখন দেখবো কিভাবে এজ লিস্ট থেকে এডজেসেন্সি ম্যাট্রিক্সে কনভার্ট করা যায়।

এটার এজ লিস্টটা হবেঃ

প্রথমে আমরা ম্যাট্রিক্সটি ইনশিয়ালাইজ করে ফেলবো আগের লজিক এই। আমরা একটি ম্যাট্রিক্স রাখবো যার সারি এবং কলাম সংখ্যা উভয়ই হবে নোড সংখ্যার সমান। আর শুরুতে সকল এলিমেন্টে -1 রাখবো। আর শুধু যে এলিমেন্ট গুলোর সারি এবং কলাম সংখ্যা সমান তাদের 0 রাখবো। কারন তারা সেলফ নোড।

// Some code
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            mat[i][j] = -1;
            if (i == j)
                mat[i][j] = 0;
        }
    }

এবার এজ লিস্ট গুলো ইনপুট নিব। প্রতি এজ এ তিনটা ইনপুট থাকবে। যে দুইটা নোড এর মধ্যে এজ হবে সেই দুই নোড ও তাদের কস্ট। এবার ম্যাট্রিক্স এর সেই ইন্ডেক্সে কস্টটা সেট করে দিব।

// Some code
    while (e--)
    {
        int a, b, c;
        cin >> a >> b >> c;
        mat[a][b] = c;
        mat[b][a] = c;
    }    

সম্পূর্ণ কোডঃ

// Some code
#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n, e;
    cin >> n >> e;
    int mat[n][n];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            mat[i][j] = -1;
            if (i == j)
                mat[i][j] = 0;
        }
    }
    while (e--)
    {
        int a, b, c;
        cin >> a >> b >> c;
        mat[a][b] = c;
        mat[b][a] = c;
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n; j++)
        {
            cout << mat[i][j] << " ";
        }
        cout << endl;
    }
    return 0;
}

Last updated